和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文件和合并后的证书文件到服务器。
配置截图:
本例中建立两个站点,分别使用不同的域名,绑定对应的证书设置。
访问效果:
其他和普通http站点设置相同。
本实例中配置文件下载:nginx-ssl.tar.gz