本指南向您展示如何在 ISPConfig 中生成 CSR,ISPConfig 是一款开源的 Linux 主机控制面板。ISPConfig 按每个网站管理 SSL:您在面板中打开该站点,在Domain选项卡上启用 SSL,使SSL选项卡出现,填写组织信息字段,并将SSL Action设置为Create Certificate。ISPConfig 会同时生成 CSR 及其匹配的私钥,将两者与站点一起保存,并显示您需要粘贴到证书颁发机构订单表单中的 CSR 文本。
如果您不需要付费证书的保修或组织验证,ISPConfig 3.2 及更高版本还可以通过勾选一个选项来签发免费的Let’s Encrypt证书,无需生成 CSR。请参阅下方的Let’s Encrypt 替代方案部分。
在 ISPConfig 中生成 CSR
如果您已经有了 CSR(例如,使用我们的 CSR 生成器或其他工具生成的),请直接跳转至如何在 ISPConfig 上安装 SSL 证书。以下步骤适用于撰写本文时的当前稳定版本 ISPConfig 3.2.x。
步骤 1:登录 ISPConfig
在浏览器中打开您的 ISPConfig 面板。默认网址是服务器主机名或 IP,端口为8080,例如:
https://your-server.example.com:8080/
使用您的管理员或代理商账户登录。
步骤 2:打开您想要保护的网站
- 在顶部导航栏中,点击Sites。
- 在左侧边栏中,打开Websites部分并点击Websites。
- 点击您想要为其申请证书的域名。
步骤 3:在网站上启用 SSL
在网站的Domain选项卡上,勾选SSL复选框并点击Save。只有启用此选项后,ISPConfig 才会显示SSL选项卡,所以如果您在第 4 步中没有看到该选项卡,就是缺少这一步。
暂时不要勾选Let’s Encrypt SSL复选框。该选项用于本指南后面介绍的免费自动化替代方案。如果勾选它,ISPConfig 将尝试签发 Let’s Encrypt 证书,而不是为付费 CA 创建 CSR。
步骤 4:打开 SSL 选项卡并填写 CSR 字段
点击同一网站上的SSL选项卡。在每个字段中填写拥有该域名的组织的法定信息。证书颁发机构会使用这些值进行验证,因此它们必须与官方记录(公司章程、政府注册信息等)保持一致:
- State:您的组织合法注册所在的完整州或省名称(例如California,而不是CA)。
- Locality:您的组织合法注册所在的城市或城镇全称。
- Organization:您公司的准确法定名称,例如Example LLC。对于域名验证 (DV) 证书,您可以填写域名或个人姓名;对于 OV 或 EV 证书,此项必须与官方注册记录完全一致。
- Organization Unit:此字段留空。OU 字段已被 CA/Browser Forum 弃用,许多 CA 在签发过程中会将其剔除。
- Country:从下拉列表中选择您组织法定地址所在国家的两字母国家代码(例如US、GB、DE)。
- Common Name (FQDN):您希望证书保护的完全限定域名。ISPConfig 会预先选择该网站的主域名。对于通配符证书,请选择以星号开头的条目,例如*.example.com。通配符形式涵盖所有一级子域名(例如shop.example.com和mail.example.com),但不包括裸域名,除非您的 CA 明确将其包含在内。
保存前请仔细核对这些值。CSR 会原样编码这些信息,如果 Organization 或 Common Name 字段中出现一个拼写错误,CA 将拒绝该订单,您将不得不重新开始。
步骤 5:将 SSL Action 设置为 Create Certificate 并保存
- 向下滚动到 SSL 选项卡底部的SSL Action下拉菜单。
- 选择Create Certificate。
- 点击Save。
ISPConfig 现在会在后台生成私钥和 CSR。处理通常需要几秒钟。等页面返回后,重新加载页面或重新打开该网站的 SSL 选项卡。
步骤 6:从 SSL Request 字段复制 CSR
保存后,返回 SSL 选项卡。SSL Request文本框现在包含您的 CSR,其下方的SSL Key字段包含匹配的私钥。选中整个SSL Request内容块,包括首尾行,并将其复制。CSR 看起来是这样的:
-----BEGIN CERTIFICATE REQUEST-----
MIIC2TCCAcECAQAwgZMxCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlh
... (many lines of base64-encoded data) ...
wIDAQABoAAwDQYJKoZIhvcNAQELBQADggEBAA==
-----END CERTIFICATE REQUEST-----
结账时,将整个内容块(包括首尾行)粘贴到证书颁发机构订单表单的 CSR 字段中。请让该网站在 ISPConfig 中保持打开状态;您稍后会回到同一个 SSL 选项卡来安装已签发的证书。
保护私钥
私钥是您证书的一半。没有它,已签发的证书无法提供 HTTPS 服务,而任何复制了它的人都可以在证书有效期内冒充您的网站。以下是几条准则:
- 切勿将私钥发送给证书颁发机构。您只需提交 CSR。CA 从不需要私钥,任何索要私钥的 CA 都存在问题。
- 在证书签发之前,不要编辑或替换 SSL Key 字段。CA 返回的证书只能与生成 CSR 时同步创建的确切密钥配合使用。如果您覆盖了它,证书将无法使用,您将不得不重新签发。
- 备份密钥。如果您有 SSH 访问权限,ISPConfig 会将私钥存储在磁盘上的/var/www/yourdomain.com/ssl/yourdomain.com.key路径,CSR 则存储在/var/www/yourdomain.com/ssl/yourdomain.com.csr路径。请将两者保存在受限权限的私密位置,切勿将其提交到代码仓库中。
一旦 CA 签发了证书,请返回 SSL 选项卡,将证书和 CA 证书链粘贴到相应字段,并将SSL Action设置为Save Certificate。详细步骤请参阅我们的如何在 ISPConfig 上安装 SSL 证书指南。
提交前验证 CSR
在将 CSR 粘贴到订单表单之前,先解码它并确认每个字段都符合您的预期。如果 CSR 中的 Common Name 或 Organization 存在拼写错误,CA 会在您已经为订单付款之后拒绝该请求。有两种检查方法:
- 将 CSR 粘贴到我们免费的CSR 解码器中。它会以可读格式返回 Common Name、Organization、Country、密钥类型和密钥长度。
- 如果您有服务器的 SSH 访问权限,可以直接对该文件运行 OpenSSL:
openssl req -in /var/www/yourdomain.com/ssl/yourdomain.com.csr -noout -text
检查Subject行中的 CN、O、ST、L 和 C 值,以及Public-Key行中的密钥长度(现代标准最低要求为 RSA 2048 位)。
Let’s Encrypt 替代方案(无需 CSR)
ISPConfig 3.2 及更高版本内置了Let’s Encrypt功能。如果您只需要域名验证,并不在意保修,这是最简单的方式:无需生成 CSR,无需粘贴证书文件,也无需手动续期。启用方法如下:
- 打开Sites > Websites并点击该域名。
- 在Domain选项卡上,同时勾选SSL复选框和Let’s Encrypt SSL复选框。
- 点击Save。
在启用之前,请确保该域名(以及您在该网站下勾选的任何别名或子域名)已经在 DNS 中解析到此服务器,并且端口80可以从公共互联网访问。Let’s Encrypt 在签发证书之前会通过 HTTP 验证域名,因此如果该名称尚未解析到该服务器,或者防火墙阻止了端口 80,签发将会失败。Let’s Encrypt 证书的有效期为 90 天,ISPConfig 会在到期前自动续期。
当您需要组织验证或扩展验证、来自商业 CA 的通配符证书、更长使用期限的部署,或需要签发保修支持时,请使用来自商业 CA 的付费证书。否则,Let’s Encrypt 是一个不错的默认选择。


