和apache绑定SSL一样,nginx绑定SSL也很简单。

添加SSL端口监听,指定证书文件路径即可。

增加的配置文件如下:

#添加https监听
listen 443 ssl;
ssl    on;
#指定https证书文件和ca文件
ssl_certificate /etc/nginx/cert/pentester.crt;
ssl_certificate_key /etc/nginx/cert/pentester.key;
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;

其中ssl_certificate为证书文件、ssl_certificate_key为私文件。

相比apache的配置,发现nginx只指定两个文件,而apache下为三个,这是为什么呢?

其实nginx的证书文件为apache下两个文件合并后的结果。

即:证书文件+CA文件

购买的证书一般都会提供IIS\apache\nginx对应文件,直接使用即可。

在只有apache下证书文件的情况可以使用编辑器合并,或直接使用命令合并(例如:cat 证书文件.crt CA文件.crt >> nginx证书.crt)。

我这里直接使用notepad++进行合并(域名crt文件在上,ca证书在下)后保存,然后上传key文件和合并后的证书文件到服务器。

 

配置截图:

1.jpg

 

本例中建立两个站点,分别使用不同的域名,绑定对应的证书设置。

访问效果:

2.jpg

3.jpg

 

nginx下绑定SSL,留意crt证书文件为两个文件合并而来。

其他和普通http站点设置相同。

本实例中配置文件下载:nginx-ssl.tar.gz