我正在构建正确的证书链。我的证书颁发由 StartSSL 颁发的 2 类证书。
这是我在 ssl.crt 中放入的内容:
my cert
https://www.startssl.com/certs/ca.pem
https://www.startssl.com/certs/class2/sha1/pem/sub.class2.client.sha1.ca.pem
https://www.startssl.com/certs/class2/sha1/pem/sub.class2.server.sha1.ca.pem
(我放链接是为了让你看到我把文件放在哪里)
如果我这样做,openssl s_client -connect multiformeingegno.it:993
我会得到:
Verify return code: 19 (self signed certificate in certificate chain)
---
* OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE IDLE AUTH=PLAIN AUTH=LOGIN] Dovecot (Ubuntu) ready
如果我尝试将我的帐户添加到 Gmail,这就是我得到的:
"Missing +OK response upon connecting to the server: * OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE IDLE AUTH=PLAIN AUTH=LOGIN] Dovecot (Ubuntu) ready."
为什么说是自签名证书?
在某种程度上,自签名证书将始终出现在证书链中 - 最明显的是 CA 证书的情况,根据定义,这些证书是自签名的,但受信任。您看到该消息是因为 StartSSL CA 证书是自签名的。
您的链文件也是错误的 - 您不需要客户端证书。该文件应按以下顺序排列,从文件顶部到底部,链接指向 StartSSL 的等效证书,假设为 2 类验证(文档在此处):
您的错误可能归结为使用了错误的端口,如此处所述。作为参考,端口 995 用于 POP SSL 连接,端口 993 用于 IMAP SSL(参考)。
如果您尝试配置 Gmail 访问某个 3rd 方 pop3 帐户,请确保使用端口 995,如果它是 imap,那么它是 993。
为确保您的 SSL 已安装并正常工作,您可以使用 openssl 和以下命令:
如果一切正常,openssl 将不会显示任何错误消息。