Nginx SSL证书安装部署指南
本文介绍了Nginx Web服务器上安装部署SSL证书的操作指南。Nginx是目前最新的高性能Web服务器,和传统的Apache服务器相比,特别在大量的客户并发连接下,性能要提高10倍以上。很多大型的PHP网站都采用了Nginx Web服务器。虽然Nginx采用是Linux2.6内核和epoll架构的网络I/O模型,但在使用上和Apache还是比较相似,是Apache一个非常不错的替代产品,下面主要介绍一下Nginx下如何安装部署SSL证书的一些内容。(如果该Nginx SSL证书安装部署操作指南不能满足要求或者存在疑问请跟易维信客服或技术支持人员联系。)
步骤一:获取SSL证书和中级CA根证书
1、证书通过CA(CA-证书颁发机构,比如Symantec(VeriSign)、GeoTrust、Thawte、GlobalSign等)以电子邮件的形式发送给客户。
2、复制嵌入邮件内容中的SSL证书信息,然后粘贴到Txt文本编辑器(比如:Notepad或vi) :
-----BEGIN CERTIFICATE-----
[encoded data]
-----END CERTIFICATE-----
确保有5个破折号(-----)在BEGIN CERTIFICATE 和 END CERTIFICATE的两侧,确保没有空格,多余的换行符或其他无意中加入的字符。
然后保存SSL证书文件(比如:ssl_certificate.crt文件(名称可以任意,后缀一般为*.crt或*.cer))。
3、如果邮件中包含中级CA根证书,请重复上述步骤2,保存中级CA根证书文件(比如:intermediateCA.crt文件(名称可以任意,后缀一般为*.crt或*.cer));如果邮件内容中未提供中级CA根证书或下载链接,请到官网下载或找易维信客服及技术支持提供。
步骤二:合并SSL证书和中级CA根证书
您需要合并SSL证书文件(比如:ssl_certificate.crt)和中级CA根证书文件(比如:intermediateCA.crt),成为单个的合并后的文件。
1、Windows系统下合并方式:用记事本打开您的SSL证书(比如:ssl_certificate.crt)文件和中级CA根证书(比如:intermediateCA.crt)文件,把中级CA根证书(比如:intermediateCA.crt)文件的内容复制、粘帖到SSL证书(比如:ssl_certificate.crt)文件内容的末尾,然后另存为一个单独文件(比如:server_yourdomain.cer 或 your_domain_name.crt),保证之。
2、Linux或unix等系统下合并方式:请运行如下的指令合并您的SSL证书(例如: ssl_certificate.crt ) 和中级CA根证书(比如:intermediateCA.crt ) 到一个PEM格式文件(比如:server_yourdomain.cer 或 your_domain_name.crt):
cat ssl_certificate.crt intermediateCA.crt >> server_yourdomain.cer
步骤三:配置Nginx服务器
1、编辑Nginx的配置文件(virtual hosts),在Nginx服务器上打开您需要保护的网站对应(Virtual host)的配置文件。请注意:如果你的网站需要安全(HTTPS)和非安全(HTTP)连接的访问,您将需要为每一个类型的连接设定服务器组件(server module)。
2、修改nginx.conf文件。Nginx的参数配置都在nginx.conf文件中,SSL配置也是如此,下面就是配置示例。在请复制现有非安全服务器组件的部分, 然后将其粘贴在原文下面,添加下面粗体部分:
server {
listen 443;
ssl on;
ssl_certificate /etc/ssl/server_yourdomain.cer;
# 在步骤二您所合并SSL证书和中级CA根证书的PEM文件
ssl_certificate_key /etc/ssl/server_yourdomain.key; #或者mykey.key,名字可以随便取
#私钥文件是当你生成证书请求文件(CSR) 的时候建立的mykey.key。(现:server_yourdomain.key)
server_name your.domain.com;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:!RC4:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!EXP:+MEDIUM;
ssl_prefer_server_ciphers on;
access_log /var/log/nginx/nginx.vhost.access.log;
error_log /var/log/nginx/nginx.vhost.error.log;
location / {
root /home/www/public_html/your.domain.com/public/;
index index.html;
}
}
配置参数说明如下:
• listen 443: SSL协议监听的端口,SSL协议缺省使用443端口。
• server_name: 指定SSL网站主机名。
• ssl on: SSL功能打开,采用SSL通信协议。
• ssl_certificate: 证书文件,server_yourdomain.cer
• ssl_certificate_key 私钥文件,server_yourdomain.key
• ssl_protocols 支持的SSL协议标准。启用TLS1.1、TLS1.2要求OpenSSL1.0.1及以上版本,若您的OpenSSL版本低于要求,请使用 ssl_protocols TLSv1;
3、请运行以下指令重新启动Nginx:
• sudo /etc/init.d/nginx restart (Linux或Unix系统下)
• windows 下,请输入:
nginx -s stop
nginx
如果您无法使用这些指令,建议查询Nginx Web服务器的供应商参考手册或者联系Nginx公司技术支持。
步骤四:测试SSL证书的安装
通过https方式访问您的站点,测试站点证书的安装配置。
如要确认您的SSL证书是否正确安装,请使用SSL-Checker
Nginx-SSL: 欲了解更多信息,请参考Nginx官方网站。
附录(服务器证书的备份及恢复)
在您成功的安装和配置了服务器证书之后,请务必依据下面的操作流程,备份好您的服务器证书,以防证书丢失给您带来不便。
1. 服务器证书的备份
备份服务器SSL证书文件server_yourdomain.cer和私钥文件server_yourdomain.key即可完成服务器证书的备份操作。
2. 服务器证书的恢复
请参照服务器证书安装部分,将服务器SSL证书和私钥文件恢复到您的服务器上,并修改配置文件,恢复服务器证书的应用。