最近发布的 Thunderbird 版本(介于 27 和 31 之间)破坏了我用来担保自签名密钥的自签名 CA。
我使用自签名证书与家人通信。他们已经工作了很多年。
现在,签名的消息会带有密封的信封图标,如下所示:
点击它会产生:
如果我查看证书,我会看到:
因此它似乎是值得信任的 CA。
另一个症状:当我向拥有自签名私钥并依赖该自签名 CA 的用户发送邮件时,我收到“未找到所有收件人的证书,禁用加密消息吗?”
再次,升级之前所有这些都运行良好。
答案1
天哪,这太痛苦了。几个小时过去了!
正如 Thunderbird 所说,它相信 CA 可以担保 SSL 证书...仅 SSL 证书!
openssl.cnf 中有“keyUsage”和“extendedKeyUsage”选项。但我无法在 /etc/ssl/openssl.cnf 中识别这些选项。
使用时openssl x509 -in mykey.crt -text
我无法验证此设置是否有任何作用。
诀窍是当地的,名为basic.cnf:
[ req ]
default_bits = 2048
distinguished_name = req_distinguished_name
prompt = no
[ req_distinguished_name ]
C = {Country}
ST = {Provice/State}
L = {City}
O = {Org}
OU = {Org Unit}
CN = [email protected]
emailAddress = [email protected]
可能可以比这更精简。显然,Ubuntu 14.04 中默认打包的版本限制了密钥的使用。因为有了这个,我可以使用我通常的咒语来制作密钥和证书,但使用新的 -config 选项来指向精简的配置文件:
KEYNAME=test_key
openssl genrsa -des3 -out ${KEYNAME}_private.pem 1024 -config basic.cnf
openssl req -new -key ${KEYNAME}_private.pem -out ${KEYNAME}.csr
openssl x509 -req -days 3650 -in ${KEYNAME}.csr -signkey ${KEYNAME}_private.pem -out ${KEYNAME}.crt
openssl pkcs12 -export -inkey ${KEYNAME}_private.pem -in ${KEYNAME}.crt -out ${KEYNAME}.p12
然后,将 .crt 导入 Thunderbird,我现在看到以下内容:
并且一切都恢复正常(导入新密钥等之后)