教你如何部署nigix SSL证书

摘要

Nginx是目前最新的高性能Web服务器,和传统的Apache服务器相比,特别在大量的客户并发连接下,性能要提高10倍以上。很多大型的PHP网站都采用了Nginx服务器。同时为保证Nigix的服务器网站安全,以下介绍如何为ngnix安装ssl 证书

工具环境

点击以下链接下载并安装Openssl工具,下载地址是:win32openssl-0_9_8.exe

证书安装流程

制作CSR申请文件

产生证书私钥和证书请求文件(CSR)
Openssl工具安装成功后,点击”开始”菜单,在”运行”一栏输入”cmd”,然后点击”确定”,进入openssl目录:
CSR
openssl req -new -nodes -newkey rsa:2048 -keyout server.key -out server.csr
在完成了如上的交互信息输入后,当前目录下将产生两个文件:server.key 和 server.csr。请妥善保存这两个文件,请不要泄露server.key私钥文件

设置参数解析
Country Name (2 letter code) 使用国际标准组织(ISO)国码格式,填写2个字母的国家代号。中国请填写CN。

State or Province Name (full name) 省份,比如填Guangdong

Locality Name (eg, city) 城市,比如填写guangzhou

Organization Name (eg, company) 组织单位,比如填写公司名称的拼音

Organizational Unit Name (eg, section) 比如填写IT Dept

Common Name(eg, your websites domain name): 行使 SSL 加密的网站地址。请注意这里并不是单指您的域名,而是直接使用 SSL 的网站名称 。

Email Address 邮件地址,可以不填

A challenge password 可以不填

An optional company name 可以不填

提交CSR 到WoSign (沃通,证书的厂家有很多,沃通挺不错) 保管好server.key私钥文件,提交CSR给WoSign等待证书签发

安装证书文件

1、 获取证书的公钥

您会收到一封来自WoSign的邮件,证书内容附在邮件中。请将邮件中的证书部分的内容Notepad存成一个纯文本文件,并确定证书内容中不含有空行和空格,文件名可以为server.cer

2、 获取中间证书

不同的SSL证书对应不同中级根证书格式文件,请到WoSign 官方网站下载,或者联系客服,下载地址:http://www.wosign.com/support/ssl_installation.htm

3、 合并证书公钥

请用Notepad打开中间证书,并复制中间证书中的所有内容,粘贴到Server.cer文件最后,再次保存好server.cer文件,并将此文件和制作CSR时候生成的server.key一起复制到服务器上。

4、 修改nginx.conf文件

Nginx的参数配置都在nginx.conf文件中,SSL配置也是如此,下面就是配置举例:

1
2
3
4
5
6
7
8
9
10
11
12
13
server {

listen 443;

server_name www.wosign.com;

ssl on;

ssl_certificate server.cer;

ssl_certificate_key server.key;

}

5、 配置参数说明如下:

listen 443:SSL协议监听的端口,SSL协议缺省使用443端口。

server_name:指定SSL网站主机名。

ssl on:SSL功能打开,采用SSL通信协议。

ssl_certificate:证书文件,server.cer

ssl_certificate_key:私钥文件,server.key

ssl_protocols:支持的SSL协议标准。

6、 其他缺省值修改

  1. ssl_protocols SSLv2 SSLv3 TLSv1; 应该修改为:ssl_protocols TLSv1 TLSv1.1 TLSv1.2;

  2. ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;

应该修改为:

ssl_ciphers ALL:!ADH:!EXPORT56:-RC4+RSA:+HIGH:+MEDIUM:-EXP;

7、 重新启动nginx 。

证书的备份和证书的导入

1、 备份

在Nginx下的证书备份是非常简单的,打开nginx.conf文件,找到ssl_certificate和ssl_certificate_key指定的2个文件,通常是.cer(.crt)和.key文件,将这两个文件复制到备份媒质上即可。

2、 导入

要恢复Nginx的证书同样非常简单,将备份的.cer和.key文件,复制到新的服务器上,然后参考上面服务器证书安装说明,修改nginx.conf文件即可

客户端证书认证

、 修改nginx.conf文件

如果要求客户采用客户证书认证方式,可以在原来的配置下增加如下参数:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
server {

......

......

......

ssl_verify_client on

ssl_client_certificate ca.cer

ssl_verify_depth 1

}

2、 配置参数说明

ssl_verify_client on: 要求SSL客户证书认证。

ssl_client_certificate ca.cer: 签发客户证书的CA证书,用来验证客户证书。

ssl on:SSL 功能打开,采用SSL通信协议。

ssl_verify_depth 1: SSL客户证书认证链长度

结语

如果你还需要了解更多技术文章信息,请继续关注Jory博客

看一看,共同关注,共同分享与讨论!