Mac-Osx
使用 openssl 生成自簽名證書時如何添加擴展密鑰使用字元串
我在 Mac OS X 10.9 上使用 openssl 為 Windows Server 遠端桌面服務生成自簽名證書。
使用下面的命令我可以生成證書,
openssl req -x509 -nodes -days 365 -newkey rsa:4096 -keyout myserver.key -out myserver.crt
但是,我需要添加一個擴展的密鑰使用字元串伺服器身份驗證(1.3.6.1.5.5.7.3.1),我無法在上面的命令中弄清楚如何做到這一點。
我嘗試將 openssl 選項**-extfile**與包含此文件的文件一起使用,
[= default ] extendedKeyUsage = 1.3.6.1.5.5.7.3.1
但是,我收到“找不到-extfile 選項”的錯誤
在
openssl x509
uses-extfile
時,您正在使用的命令openssl req
, 需要-config
指定配置文件。因此,您可以使用如下命令:
openssl req -x509 -config cert_config -extensions 'my server exts' -nodes \ -days 365 -newkey rsa:4096 -keyout myserver.key -out myserver.crt
可分辨名稱位的通常提示在預設配置文件中定義(可能
/System/Library/OpenSSL/openssl.cnf
在 OS X 上),但是當您使用時不會處理此文件-config
,因此您的配置文件還必須包含一些 DN 位。因此,上面提到的cert_config
可能看起來像這樣:[ req ] prompt = no distinguished_name = my dn [ my dn ] # The bare minimum is probably a commonName commonName = secure.example.com countryName = XX localityName = Fun Land organizationName = MyCo LLC LTD INC (d.b.a. OurCo) organizationalUnitName = SSL Dept. stateOrProvinceName = YY emailAddress = ssl-admin@example.com name = John Doe surname = Doe givenName = John initials = JXD dnQualifier = some [ my server exts ] extendedKeyUsage = 1.3.6.1.5.5.7.3.1 # 1.3.6.1.5.5.7.3.1 can also be spelled serverAuth: # extendedKeyUsage = serverAuth # see x509v3_config for other extensions
如評論中所示,您可能可以省略大部分 DN 欄位。對於 HTTPS 使用,我認為您只需要一個與您的主機名匹配的 CN。
req(1)的Distinguished Name and Attribute Section Format 部分顯示瞭如果您想生成多個類似的證書/請求,如何修改上述配置以提示輸入值(並提供預設值)。
如果您需要其他證書擴展,請檢查 x509v3_config(5) 以了解您可以在擴展部分中指定的其他位。