我在使用 openssl 创建包含用于测试的 crl 分发点的 x509 证书时遇到问题。
我检查了文档并找到了用于此目的的配置设置 crlDistributionPoints。不幸的是,openssl 始终生成 x509 版本 1 证书,而不使用 crl 分发点生成版本 3 证书。
我确信我的命令或配置有问题,但仔细阅读文档并尝试配置并没有帮助。考虑配置文件中的其他设置,因此我确信 openssl 使用该文件本身。
我正在使用命令
openssl x509 -req -in $NAME.csr -out certs/$NAME.pem -days 3650 -CAcreateserial -CA cacert.pem -CAkey private/cakey.pem -CAserial serial
我正在使用以下配置文件:
[ ca ]
default_ca = CA_default
[ CA_default ]
dir = /home/ca
database = $dir/index.txt
new_certs_dir = $dir/newcerts
certificate = $dir/cacert.pem
serial = $dir/serial
private_key = $dir/private/cakey.pem
RANDFILE = $dir/private/.rand
default_days = 3650
default_crl_days = 30
default_md = md5
policy = policy_any
email_in_dn = no
name_opt = ca_default
cert_opt = ca_default
copy_extensions = none
x509_extensions = extensions_section
[ extensions_section ]
crlDistributionPoints=URI:http://example.com/crl.pem
[ policy_any ]
countryName = supplied
stateOrProvinceName = optional
organizationName = optional
organizationalUnitName = optional
commonName = supplied
emailAddress = optional
有任何想法吗?
openssl x509
不会读取您在配置文件中指定的扩展配置。
您可以获得crlDistributionPoints
(至少)通过以下两种方式进入您的证书:
-
Use openssl ca
而不是x509
签署请求。经过-config
如果您的配置不在默认位置,则根据需要进行设置。如果您省略以开头的选项,则可以使用您提供的大多数命令-CA
openssl ca -in $NAME.csr -out certs/$NAME.pem -days 3650
-
使用您在问题中提供的命令,但首先创建一个包含 v3 扩展的文件(即mycrl.cnf
);添加选项-extfile mycrl.cnf
接到您的电话openssl x509
openssl x509 -req -in $NAME.csr -out certs/$NAME.pem -days 3650 \
-CAcreateserial -CA cacert.pem -CAkey private/cakey.pem \
-CAserial serial -extfile mycrl.cnf`
Where mycrl.cnf
包含以下内容:
crlDistributionPoints=URI:http://example.com/crl.pem
openssl ca
该命令可能更适合您想要执行的操作,因为您会发现大多数示例都依赖于该命令,利用 openssl.cnf 中的各种设置来实现 v3 扩展。
旁白:是的不宜 http://www.kb.cert.org/vuls/id/836068/在证书中使用 MD5 消息摘要。
以前 SHA1 是 MD5 的建议替代品,但现在它也已被弃用。您可以指定请求和签名操作中使用的消息摘要,并且可以使用以下命令列出支持的消息摘要openssl list-message-digest-commands
.
例如,您可以在使用 SHA256 签署请求时使用 SHA256-md sha256
选项openssl ca
(或设置default_md=sha256
在你的[CA_default]
配置部分)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)