本教程介绍如何在 Courier IMAP 服务器上使用 OpenSSL 生成 CSR(证书签名请求)。通过此 CSR 获取的证书可保护邮件客户端在 IMAP、POP3 和 SMTP 中使用的 TLS 连接,确保凭据和邮件在客户端与服务器之间加密传输。
在 Courier IMAP 服务器上生成 CSR
如果您已生成 CSR 并从证书颁发机构收到证书文件,请跳过本指南,直接前往在 Courier IMAP 服务器上安装 SSL 证书。
CSR 是一段编码文本,包含您希望认证的域名和组织信息。当您订购证书时,需要将其发送给证书颁发机构(CA)。生成 CSR 的同时也会创建一个与之匹配的私钥,该私钥保留在您的服务器上。之后安装证书时需要用到这个密钥,因此请勿删除或移动它。
您可以按照下方说明通过命令行使用 OpenSSL 生成 CSR,也可以使用我们的CSR 生成器在浏览器中生成 CSR 和密钥。
步骤一:运行 OpenSSL 命令
通过 SSH 连接到您的服务器,然后运行以下命令。它会在当前目录下生成一个新的 2048 位 RSA 私钥以及与之匹配的 CSR:
openssl req -new -newkey rsa:2048 -nodes
-keyout mail.yourdomain.com.key
-out mail.yourdomain.com.csr
-addext "subjectAltName=DNS:mail.yourdomain.com,DNS:imap.yourdomain.com,DNS:smtp.yourdomain.com"
-addext 选项会在请求中添加使用者备用名称(SAN)。这一项不是可选的:浏览器和邮件客户端会将服务器主机名与 SAN 而非 Common Name 进行匹配,因此证书必须列出客户端使用的每一个主机名。请将客户端连接所用的所有主机名列出,用逗号分隔。
请使用客户端实际用于 IMAP、POP3 和 SMTP 的主机名,例如 mail.yourdomain.com、imap.yourdomain.com 和 smtp.yourdomain.com。如果这三种服务共用一个主机名,只需列出该名称即可。除非邮件客户端直接连接到您的裸网站域名,否则应避免使用它。
关于该命令还有两点说明:rsa:2048 是公共 CA 接受的最小密钥长度,您也可以将其提升为 rsa:4096 以获得更大的密钥。-nodes 选项会在写入密钥时不设置口令,这是 Courier 所要求的,因为它在启动时会自动加载密钥,不会提示输入口令。
步骤二:回答提示信息
接下来 OpenSSL 会询问构成证书识别名称(Distinguished Name)的相关信息,顺序如下:
- Country Name(2 letter code):您所在国家/地区的两字母 ISO 代码,例如 US 或 GB。
- State or Province Name:完整的省/州名称,不要使用缩写。
- Locality Name:您的组织注册所在的城市。
- Organization Name:您组织的法定名称,例如 GPI Holding LLC。
- Organizational Unit Name:请留空并按回车键。公共 CA 已不再包含 OU 字段。
- Common Name:您要保护的主要邮件主机名,例如 mail.yourdomain.com。它应与步骤一中的某个 SAN 名称匹配。
- Email Address:可选。您可以留空,因为公共 CA 不会将其包含在证书中。
在识别名称之后,OpenSSL 还会询问两个额外属性:A challenge password 和 An optional company name。两者均留空并按回车键即可,公共 CA 不使用这些信息。
如果提示中显示方括号内的值,那是默认值:按回车键即可接受,或输入新值。请勿将整个识别名称留空,因为部分 OpenSSL 版本在此情况下会拒绝写入 CSR。至少需要填写国家、组织和 Common Name。
步骤三:复制 CSR 并订购证书
OpenSSL 会在当前目录中保存两个文件:mail.yourdomain.com.key(您的私钥)和 mail.yourdomain.com.csr(您的 CSR)。您可以使用任意纯文本编辑器打开 CSR,或将其输出到终端:
cat mail.yourdomain.com.csr
复制整个内容块,包括 -----BEGIN CERTIFICATE REQUEST----- 和 -----END CERTIFICATE REQUEST----- 这两行。内容大致如下:
-----BEGIN CERTIFICATE REQUEST-----
MIICvDCCAaQCAQAwXTELMAkGA1UEBhMCVVMx...
...the encoded body of your request...
-----END CERTIFICATE REQUEST-----
在购买证书时,将此内容块粘贴到订单表单中。提交前,可通过我们的CSR 解码器确认信息是否正确,它会显示该 CSR 中包含的 Common Name、SAN 条目、密钥长度以及组织信息。
请将 mail.yourdomain.com.key 保存在服务器上,并仅允许 root 用户读取。安装过程中您需要将其与颁发的证书合并使用,没有对应的私钥,证书是无法安装的。
一旦 CA 颁发了您的证书,您需要将其与此私钥以及 CA 证书链合并为一个 PEM 文件,并将 Courier 的 TLS_CERTFILE 设置指向该文件。我们的在 Courier IMAP 服务器上安装 SSL 证书的方法指南涵盖了完整流程。


