【问题标题】:install ssl certificate on nginx when provided with private key, CA and ssl certificate提供私钥、CA 和 ssl 证书时在 nginx 上安装 ssl 证书
【发布时间】:2021-07-02 23:25:28
【问题描述】:

我从某个托管商那里购买了 SSL 证书,我得到了这 4 个文件

> SSL Certificate:
> CSR:
> Private Key:
> CA Certificate:

如何使用 Nginx 将这些文件安装到我的 VPS 服务器中?我的主机不是协作的,我必须弄清楚如何将它安装到我的客户站点。所有谷歌搜索都将我引导到正常安装,我们从我的 VPS 生成 CSR,提交给主机,获取证书,合并然后用 Nginx 修复它们,但对于这种情况,我完全感到困惑 任何帮助,我将不胜感激

【问题讨论】:

  • 如何为 nginx 使用证书在很多地方都有很好的记录。 SSL 证书的销售商通常也提供此类文档,例如here。鉴于可用信息量,尚不清楚您的具体问题是什么。
  • 根据你分享的链接,这4个文件中有intermediate.crt,domain_name.crt,哪个是domain_name.key?我的问题是确定哪个文件包含在 nginx 配置中,哪些不包含@SteffenUllrich
  • 私钥是domain_name.key。证书为domain_name.crt,CA 证书为intermediate.crt。 CSR 无关紧要。

标签: nginx ssl ssl-certificate vps private-key


【解决方案1】:

通常,如果您收到服务器证书和私钥,您会将它们放在 Web 服务器上的目录中,然后将这些文件定位到您的配置文件中。这可以是完整路径或相对于配置此服务器的 .conf 文件的路径。
Configure HTTPS server

server {
  listen              443 ssl;
  server_name         www.example.com;
  ssl_certificate     /path/to/your/file.crt;
  ssl_certificate_key /path/to/your/file.key;
}

根据您的证书提供商,他们还应该为您提供一个文件,其中包含浏览器验证您的证书所需的 CA 链。我猜你称为 CA Certificate 的文件就是那个文件。您需要将服务器证书和 CA 证书结合起来,然后在 nginx 配置中定位该文件。
示例:

cat SSL_Certificate CA_Certificate > website.crt
server {
      listen              443 ssl;
      server_name         www.example.com;
      ssl_certificate     /path/to/your/website.crt;
      ssl_certificate_key /path/to/your/website.key;
    }

【讨论】:

  • 我已尽力遵循您的指导,包括您分享的链接如下。我已将 SSL 证书视为 file.crt ,然后,我已将私钥文件视为我的 file.key ,然后我重新启动了 Nginx,它工作但浏览器显示(www.example.com 发送了无效响应。ERR_SSL_PROTOCOL_ERROR) .然后我决定使用 CA,结合 file.crt 和我的 CA 证书来创建另一个我命名为 chain.crt 的文件并编辑 Nginx conf 以用 chain.crt 替换 file.crt 但在重新启动 Nginx 并刷新我的浏览器之后,我得到了同样的错误...
  • 日志中有任何内容吗?可能值得查看这些文件的权限。另外,试试openssl s_client -connect www.example.com:443,看看那里是否有任何有用的信息。
猜你喜欢
  • 1970-01-01
  • 2021-01-17
  • 1970-01-01
  • 2016-08-30
  • 1970-01-01
  • 2016-10-07
  • 2018-08-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多