Nginx服务器部署SSL证书

2025-10-21 05:23:39

1、安装OpenSSL工具

您需要使用Openssl工具来创建证书请求。安装OpenSSL到C:\OpenSSL;

安装完后将C:\OpenSSL\bin目录下的openssl.cfg重命名为openssl.cnf

Nginx服务器部署SSL证书

Nginx服务器部署SSL证书

2、生成服务器证书私钥

命令行进入C:\OpenSSL\bin,生成证书私钥。产生的私钥文件可以是server.key这样简单的命名或者使用我们推荐的使用主机域名方式进行命名。

cd c:\OpenSSL\bin

先设置环境变量

set OPENSSL_CONF=openssl.cnf

参考:

openssl genrsa -out server.key 2048

例:

输入命令:openssl genrsa -out D:\testweb.95105813.cn.key 2048

Nginx服务器部署SSL证书

3、生成服务器证书请求(CSR)文件

参考:

openssl req -new -key server.key -out certreq.csr

例:

输入命令:openssl req -new -key D:\testweb.95105813.cn.key -out D:\certreq.csr

如出现以下报错请先设置环境变量

set OPENSSL_CONF=openssl.cnf 

Nginx服务器部署SSL证书

4、执行成功后提示要输入您的相关信息。填写说明:

1.Country Name:

填您所在国家的ISO标准代号,如中国为CN,美国为US

2.State or Province Name:

填您单位所在地省/自治区/直辖市,如广东省或 Guangdong

3.Locality Name:

填您单位所在地的市/县/区,如佛山市或Foshan

4.Organization Name:

填您单位/机构/企业合法的名称,如广东数字证书认证中心有限公司或Guangdong Certification Authority Co.,Ltd.

5.Organizational Unit Name:

填:部门名称,如技术支持部或Technical support

6.Common Name:

域名,如:testweb.95105813.cn。在多个域名时,填主域名

7.Email Address:

填您的邮件地址,不必输入,按回车跳过

8.‘extra’attributes  

从信息开始的都不需要填写,按回车跳过直至命令执行完毕。

Nginx服务器部署SSL证书

5、除第1、6、7、8项外,2-5的信息填写请统一使用中文或者英文填写。并确保您填写的所有内容和您提交到颁发单位的资料一致,以保证SSL证书的签发。

1、SSL证书获取

申请提交后通过颁发单位的审核后会颁发给你证书,根据颁发单位的不同,需要使用的根证书和CA证书也不相同。一般颁发单位在颁发证书的时候都会将根证书、CA证书、服务器证书一起发邮件给你,GDCA的证书也可以通过他们官网下载根证书和CA证书。

2、转换证书编码

从官网上下载的证书需要先转换为Base64编码格式。以根证书为例:

打开证书,详细信息-复制到文件,在证书导出向导里,将证书编码改成Base64编码格式,导出到指定目录里。

Nginx服务器部署SSL证书

Nginx服务器部署SSL证书

Nginx服务器部署SSL证书

Nginx服务器部署SSL证书

3、转换成Base64编码格式后,用文本编辑器打开,可以看到文件内容是以-----BEGIN CERTIFICATE-----开头,-----END CERTIFICATE-----结尾。以同样方式将CA证书也转换成Base64编码格式。

Nginx服务器部署SSL证书

4、导入根证书和CA证书到服务器证书

然后将用文本编辑器打开您的服务器证书、CA证书和根证书,将CA证书和根证书都加入到您的服务器证书文件里,将文件保存为testweb.95105813.cn.crt。文件里证书的保存顺序是 服务器证书-CA证书-根证书:

例: testweb.95105813.cn.crt

Nginx服务器部署SSL证书

1、配置给nginx服务器本机使用

打开nginx安装目录下conf目录中的nginx.conf文件,找到被注释掉的server 配置,进行修改:

Nginx服务器部署SSL证书

2、server {

        listen       443 ssl;

        server_name  localhost;

        ssl_certificate /usr/local/nginx/conf/testweb.95105813.cn.crt;

        ssl_certificate_key  /usr/local/nginx/conf/testweb.95105813.cn.key;

        ssl_protocols  TLSv1 TLSv1.1 TLSv1.2;

        ssl_session_cache    shared:SSL:1m;

        ssl_session_timeout  5m;

        ssl_ciphers  HIGH:!aNULL:!MD5;

        ssl_prefer_server_ciphers  on;

        location / {

            root   html;

            index  index.html index.htm;

        }

    }

把服务器证书testweb.95105813.cn.crt和私钥testweb.95105813.cn.key上传到配置文件指向的目录/usr/local/nginx/conf/

保存退出,并重新加载nginx配置nginx -s reload后通过https方式访问您的站点,测试站点证书的安装配置。

3、使用nginx作为反向代理 

Nginx常被用作反向代理服务器使用。以下是配置示例:

在 /usr/local/nginx目录下创建servers和ssls目录

mkdir ssls

mkdir servers

把服务器证书testweb.95105813.cn.crt及其私钥testweb.95105813.cn.key上传到ssls目录下。在servers目录创建服务器testweb.95105813.cn的配置文件testweb.95105813.cn.conf:

server{

         listen       443;

         server_name  testweb.95105813.cn;

         ssl                  on;

         ssl_certificate      /usr/local/nginx/ssls/testweb.95105813.cn.crt;

         ssl_certificate_key  /usr/local/nginx/ssls/testweb.95105813.cn.key;

         ssl_protocols  TLSv1 TLSv1.1 TLSv1.2;

     location /{

           proxy_pass https://192.168.100.13:8002; #后端的web服务器

           proxy_set_header Host $host;

           proxy_set_header X-Real-IP $remote_addr;

           proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;

           fastcgi_param HTTPS $https if_not_empty;

           proxy_set_header X-Forwarded-Proto https;

           }

     error_page   500 502 503 504  /50x.html;

     error_page 400  https://$host$uri?$args;

     location = /50x.html {

        root   html;

        }

       }

打开nginx安装目录下conf目录中的nginx.conf文件,加入:

include /usr/local/nginx/servers/testweb.95105813.cn.conf 

Nginx服务器部署SSL证书

4、保存退出,并重新加载nginx配置nginx -s reload,通过https方式访问您的站点,测试站点证书的安装配置。

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢