Nginx:创建CSR并安装SSL证书(OpenSSL)

原文来自
https://www.digicert.com/csr-ssl-installation/nginx-openssl.htm

使用OpenSSL创建CSR并在Nginx服务器上安装SSL证书
使用此页面上的说明使用OpenSSL创建证书签名请求(CSR),然后在Nginx服务器上安装SSL证书。

重新启动注意:安装SSL / TLS证书并配置服务器以使用它后,必须重新启动Nginx实例。

要创建证书签名请求(CSR),请参阅Nginx:使用OpenSSL创建CSR 。

要安装SSL证书,请参阅Nginx:安装和配置SSL证书 。

I. Nginx:使用OpenSSL创建CSR
使用本节中的说明创建自己的shell命令,以使用OpenSSL生成Nginx CSR。

推荐:节省一些时间。 使用DigiCert OpenSSL CSR向导生成用于创建Nginx CSR的OpenSSL命令。 只需填写表单,单击Generate ,然后将自定义的OpenSSL命令粘贴到终端中。

如何使用OpenSSL为Nginx生成CSR
如果您希望构建自己的shell命令来生成Nginx CSR,请按照以下说明操作。

通过终端客户端(ssh)登录服务器。

运行命令

在提示符下,键入以下命令:

注意:确保使用服务器名称替换服务器。

openssl req –new –newkey rsa:2048 –nodes –keyout server.key –out server.csr

生成文件

您现在已经开始生成以下两个文件的过程:

私钥文件 :用于生成CSR以及稍后使用证书保护和验证连接。
证书签名请求(CSR)文件 :用于订购SSL证书,稍后用于加密只有其相应私钥可以解密的邮件。
当系统提示您输入公用名 (域名)时,请键入要保护的站点的完全限定域(FQDN)。

注意:如果您要为通配符证书生成Nginx CSR,请确保您的公用名称以星号(例如* .example.com )开头。

出现提示时,键入您的组织信息,从您的地理信息开始。

注意:您可能已经设置了默认信息。

现在,您的.csr文件将被创建。

订购您的SSL / TLS证书

打开使用文本编辑器创建的.csr文件。

复制文本,包括—–开始新证书申请—–和—–结束新证书申请—–标签,并将其粘贴到DigiCert订单表格中 。

保存私钥

保存(备份)生成的.key文件。 安装SSL证书后,您将需要它。

安装证书

从DigiCert收到SSL证书后,您可以将其安装在服务器上。

II。 Nginx:安装和配置您的SSL证书
如果您仍需要创建证书签名请求(CSR)并订购证书,请参阅Nginx:使用OpenSSL创建CSR 。

在我们验证并颁发了SSL证书之后,您可以将其安装在生成CSR的Nginx服务器上,并配置服务器以使用它。

如何安装和配置SSL证书
主要和中间证书

您应该在颁发证书时通过电子邮件收到DigiCert的your_domain_name.pem文件。 此.pem文件包含主证书和中间证书。 如果您有.pem文件,则可以跳到步骤4 。

如果需要将主证书和中间证书连接到单个文件,请参阅步骤2。

将证书文件复制到您的服务器

登录您的DigiCert帐户并下载中间件(DigiCertCA.crt)和您的主证书( your_domain_name.crt )文件。

将这些文件以及创建CSR时生成的.key文件复制到服务器上保存证书和密钥文件的目录。

注意:仅使root可读,以提高安全性。

连接主证书和中间证书

您需要将主证书文件(your_domain_name.crt)和中间证书文件(DigiCertCA.crt)连接到单个.pem文件中。

要连接文件,请运行以下命令:

cat your_domain_name.crt DigiCertCA.crt >> bundle.crt

编辑Nginx虚拟主机文件

打开您正在保护的网站的Nginx虚拟主机文件。

制作现有非安全服务器模块的副本,并将其粘贴到原始模块下方。

注意:如果您需要通过安全(https)和非安全(http)连接访问您的站点,则每种类型的连接都需要一个服务器模块。

接下来,在下面添加粗体行:

server {

    listen   443;

    ssl    on;
    ssl_certificate    /etc/ssl/your_domain_name.pem; (or bundle.crt)
    ssl_certificate_key    /etc/ssl/your_domain_name.key;

    server_name your.domain.com;
    access_log /var/log/nginx/nginx.vhost.access.log;
    error_log /var/log/nginx/nginx.vhost.error.log;
    location / {
        root   /home/www/public_html/your.domain.com/public/;
        index  index.html;
    }

}

调整文件名以匹配您的证书文件:

ssl_certificate应该是您的主证书以及您在上一步中创建的中间证书(例如, your_domain_name.crt )。

ssl_certificate_key应该是创建CSR时生成的.key文件。

重启Nginx。

运行以下命令重新启动Nginx:

sudo /etc/init.d/nginx restart

恭喜! 您已成功安装SSL证书。

故障排除:
使用DigiCert®SSL安装诊断工具

如果您的网站可公开访问,我们的SSL证书检查器可以帮助您诊断常见问题。

使用浏览器访问您的网站

打开网络浏览器并使用https访问您的网站。 我们建议您使用Firefox测试您的网站; 如果未安装中间证书,此浏览器将向您发出警告。 您不应该收到任何浏览器警告或错误。

如果您立即收到有关该站点不可用的浏览器消息,则Nginx可能尚未在端口443上侦听。

如果您的Web请求需要很长时间并且超时,则防火墙可能会阻止TCP端口443上的流量到Web服务器。

如果收到“不信任”警告,请查看证书以查看它是否是您期望的证书。

查看证书时,请检查“ 主题” ,“ 颁发者 ”和“ 有效期”字段

如果必须连接证书文件,则主证书(例如, your_domain_name.crt )可能无法与中间证书正确组合。

有关更多信息,请参阅Nginx SSL文档 。

猜你喜欢

转载自blog.csdn.net/yeshennet/article/details/80939706