我有以下机构颁发的证书启动SSL,它是一个值得信赖的证书颁发机构,我的网站使用其证书时没有任何问题,所有浏览器也没有抱怨任何信任问题。
现在我想在 Dovecot 中编写相同的程序,以便使用经过认证的 SSL 接收我的电子邮件。因此,我使用 IMAP 来接收邮件,例如通过 mail.myweb.com 地址。我去了 StartSSL,并为该子域颁发了证书(我总是通过 Apache 服务器为任何我想使用 SSL 的子域获取证书)。
现在我拿到了该证书,并通过将以下内容添加到 Dovecot 中,将其定义为我想在 Dovecot 上为该域名(使用 SNI)使用的证书dovecot.conf
local_name mail.myweb.com {
ssl_cert = </path/to/certificate/ssl.crt
ssl_key = </path/to/privatekey/priv.key
}
虽然这个过程在 Apache 服务器上运行良好,并且我的浏览器显示绿色挂锁,证书上没有签名问题,但 thunderbird 坚持要求我确认此证书是一个例外。
通过查看证书的详细信息,我确认了 thunderbird 收到的证书是正确的。
原因可能是什么?Thunderbird 是不是太偏执了,所以我必须购买证书?
如果您需要任何其他信息,请告诉我。
谢谢。
答案1
您可能缺少中级证书。
据我所知,Dovecot 没有像 Apache 那样的链式证书选项,您需要将中间证书与您的公共证书连接成一个文件:
- 您的域名的签名证书
- 中级 CA 证书
- 根 CA 证书
从获取正确的中间证书http://www.startssl.com/certs/(可能是 sub.class1.server.ca.pem)然后例如:
cp /path/to/certificate/ssl.crt dovecot.crt
cat sub.class1.server.ca.pem >> dovecot.crt
答案2
除了 HBruijn 的回答之外,我还想与您分享在 Webmin/Virtualmin 中安装这样创建的证书不起作用(错误:“第 46 行看起来不像 PEM 格式”)。我通过先安装域证书然后在安装后将其与中间证书连接起来来解决此限制。