jos*_*shu 13 mac-osx openssl windows-server-2012
我在 Mac OS X 10.9 上使用 openssl 为 Windows Server 远程桌面服务生成自签名证书。
使用下面的命令我可以生成证书,
openssl req -x509 -nodes -days 365 -newkey rsa:4096 -keyout myserver.key -out myserver.crt
Run Code Online (Sandbox Code Playgroud)
但是,我需要添加一个扩展的密钥用法字符串服务器身份验证 (1.3.6.1.5.5.7.3.1)并且我无法弄清楚如何在上面的命令中执行此操作。
我曾尝试将 openssl 选项-extfile与包含此文件的文件一起使用,
[= default ]
extendedKeyUsage = 1.3.6.1.5.5.7.3.1
Run Code Online (Sandbox Code Playgroud)
但是,我收到“未找到-extfile 选项”的错误消息
Chr*_*sen 14
在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
Run Code Online (Sandbox Code Playgroud)
可分辨名称位的通常提示在默认配置文件(可能/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
Run Code Online (Sandbox Code Playgroud)
如评论中所示,您可能可以省略大部分 DN 字段。对于 HTTPS 使用,我认为您只需要一个与您的主机名匹配的 CN。
该专有名称和属性科格式部分的REQ(1)所示,你可以如何修改上面的配置,以提示输入值(并提供默认值),如果你想生成多个类似的证书/请求。
如果您需要其他证书扩展,请检查 x509v3_config(5) 以了解您可以在扩展部分中指定的其他位。
对于较新的 OpenSSL 版本,这一切都可以在单个命令行上完成,无需创建配置文件。该选项-addext
也被添加到req
命令中
。有关扩展密钥用法的可能值的完整列表,请查看配置手册。
一个完整的例子:
openssl req -x509 -nodes -newkey rsa:2048 -keyout key.pem -out server.pem -days 7300 -subj '/CN=My Name/C=US/OU=My Unit/O=ACME' -addext "keyUsage = digitalSignature, keyEncipherment, dataEncipherment, cRLSign, keyCertSign" -addext "extendedKeyUsage = serverAuth, clientAuth"
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
32177 次 |
最近记录: |