使用 OpenSSL 工具对 .csr 请求进行签名时,可以使用“openssl ca”工具和“openssl x509”工具。
Openssl ca 的文本配置文件包含所有需要的 x509 选项,例如 keyUsage、extendedKeyUsage。
Openssl x509 的命令行有选项 -addtrust 和 -addreject。当您使用这些选项签署证书时,您可以稍后在“openssl x509 -text”输出中看到它们,例如:
user@inet-pc:~$ openssl x509 -req -in test.csr -CA ca.crt -CAkey ca.key -set_serial 1 -out test.crt -setalias "zzzz test alias" -addtrust emailProtection -addreject serverAuth
^ 使用自己的 CA 密钥和证书签署 test.csr
user@inet-pc:~$ openssl x509 -text -in test.crt -nooutCertificate:
Data:
Version: 1 (0x0)
Serial Number: 1 (0x1)
Signature Algorithm: sha1WithRSAEncryption
Issuer: C=RU, ST=Some-State, O=Internet Widgits Pty Ltd, OU=sdds, CN=ca
Validity
Not Before: Apr 23 06:24:58 2013 GMT
Not After : May 23 06:24:58 2013 GMT
Subject: C=AU, ST=Some-State, O=Internet Widgits Pty Ltd, CN=test
Subject Public Key Info:
Public Key Algorithm: rsaEncryption
RSA Public Key: (2048 bit)
Modulus (2048 bit):
(huge text here)
Exponent: 65537 (0x10001)
Signature Algorithm: sha1WithRSAEncryption
(huge text here)
Trusted Uses:
E-mail Protection
Rejected Uses:
TLS Web Server Authentication
Alias: zzzz test alias
^ 受信任和拒绝使用。这些用途是什么,它们是如何工作的?为什么我在X509 RFC5280中找不到任何提及它们?如何使用“openssl ca”添加相同的受信任/拒绝使用?“clientAuth”的用法呢?它未列在“受信任”或“拒绝”中 - 大多数常见应用程序会信任此证书吗?
更新 1:OpenSSL 的 x509 手册说“信任”设置对 OpenSSL 的“验证”实用程序有效,但该实用程序是做什么用的?无效的“信任”设置会导致通常的 http 浏览器/等验证失败吗?