OpenSSL使用多个SAN和扩展密钥用途的CSR

4

我是新手。我的目标是为我的Cisco防火墙创建CSR。由于需要添加EKU,而Cisco CSR不支持此功能,建议我使用OpenSSL。第二个要求是使用多个SAN。

我不知道如何操作,也不知道应该在哪里生成密钥(Cisco还是OpenSSL)。我在Linux和MacOS上都安装了OpenSSL。能否有人给我提供逐步指导,以帮助我实现这个目标?

2个回答

5

针对OpenSSL中的SAN和EKU:

  • 生成密钥:
    openssl genrsa -out key.pem 2048
  • 根据需求创建配置文件(cisco_fw_csr_config.cnf):
[req]
distinguished_name = req_distinguished_name
req_extensions = v3_req
   
[req_distinguished_name]
countryName = Country Name (2 letter code)
countryName_default = BE
stateOrProvinceName             = State or Province Name (full name)
stateOrProvinceName_default     = Brussels
localityName = Locality Name (eg, city)
localityName_default = Brussels
organizationalUnitName = Organizational Unit Name (eg, section)
commonName = Common Name (eg, YOUR name)
commonName_max = 64
emailAddress = Email Address
emailAddress_max = 40
    
[v3_req] 
keyUsage = keyEncipherment, dataEncipherment
extendedKeyUsage = serverAuth
subjectAltName = @alt_names
    
[alt_names]
DNS.1   = san.domain1.com
DNS.2   = san.domain2.com
  • 创建CSR:
    openssl req -new -key key.pem -out cisco_fw.csr -config cisco_fw_csr_config.cnf

  • 如果您需要检查CSR内容:
    openssl req -in cisco_fw.csr -noout -text


嗨Seb,非常感谢您的回复。这对我很有帮助。我有几个问题要问您。我如何在此指定证书的持续时间,例如,如果我想要3年的证书。还是必须由CA在发放时指定?我正在检查一些其他链接,并提到了几个其他字段。 "basicConstraints",“nonRepudiation”和“dataEncipherment”是否有特定要求。我已经像下面这样设置:[v3_req] basicConstraints = CA:FALSE keyUsage = nonRepudiation,digitalSignature,keyEncipherment,dataEncipherment - faadi77
我该如何在这里指定证书的有效期? 你是对的!CA将定义证书的有效期。 “basicConstraints”、“nonRepudiation”和“dataEncipherment”有特殊要求吗? 您只需设置所需的“功能”即可。 对于终端用户证书,“basicConstraints = CA:FALSE”(证书无法签发/签署其他证书)是一个好习惯。 - Seb B.
如果您能提供进一步阅读的参考资料,那就太棒了。 - AaA

0
如果您需要在不让 OpenSSL 要求输入值的情况下生成 CSR,您还需要指定 -batch 选项。
openssl req -new -batch -key key.pem -out cisco_fw.csr -config cisco_fw_csr_config.cnf

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接