nginx ssl证书安装配置

原理图:

- 客户端生成一个随机数 random-client,传到服务器端(Say Hello)
- 服务器端生成一个随机数 random-server,和着公钥,一起回馈给客户端(I got it)
- 客户端收到的东西原封不动,加上 premaster secret(通过 random-client、random-server 经过一定算法生成的东西),再一次送给服务器端,这次传过去的东西会使用公钥加密
- 服务器端先使用私钥解密,拿到 premaster secret,此时客户端和服务器端都拥有了三个要素:random-client、random-server 和 premaster secret
- 此时安全通道已经建立,以后的交流都会校检上面的三个要素通过算法算出的 session key
 
第一步、生成证书请求文件(可选1024 2048位)

如果使用-des3参数,将会需要输入密码对私钥进行加密,如不需要对私钥加密请不要使用-des3选项

输入两次密码后,将会生成server.key私钥文件

运行如下命令生成证书请求文件(CSR)

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

接下来提示输入私钥密码和申请证书的详细信息

从Email地址开始,下面的信息都不需要,请保留为空,直接回车即可

需要输入的信息说明请见下表:

字段

说明

示例

Country Name

ISO国家代码(两位字符)

CN

State or Province Name

所在省份

Shanghai

Locality Name

所在城市

Shanghai

Organization Name

公司名称

GlobalSign China Co., Ltd.

Organizational Unit Name

部门名称

IT Dept.

Common Name

申请证书的域名

Cn.globalsign.com

Email Address

不需要输入

A challenge password

不需要输入

 
 
 完成以上的操作会在对应的目录下生成server.key和server.csr
 
第二步:提交CSR,申请证书(我们申请是域名型通配符证书)
把csr文件发给证书厂商 厂商会发给你三个文件(根证书(root.cer) 中级证书(dvrootSHA256.cer) ssl服务证书(server.cer))
 
第三步:获取服务器证书
合并ssl服务证书和中级证书(把中级证书的内容追加到ssl服务证书的尾部)
 
第四步:更新nginx配置文件(nginx必须有ssl模块 --with-http_ssl_module)(指令必须配置在server段 nginx对证书有读的权限)

server {

listen 443;

server_name www.domain.com;

ssl on;

ssl_certificate /etc/ssl/server.cer; //公钥文件(Globalsign颁发的证书)

ssl_certificate_key /etc/ssl/server.key; //私钥文件 

ssl_session_timeout 5m;

ssl_protocols SSLv2 SSLv3 TLSv1;

ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP; ssl_prefer_server_ciphers on;

location / { root html; index index.html index.htm; }

}

按照以上的步骤配置完成后,重新启动Nginx(如果有设置server.key私钥密码,这时会提示输入)后就可以使用https://www.domain.com来访问了

原文地址:https://www.cnblogs.com/metasequoia/p/5459219.html