400-638-8808
|
微信公众号
Nginx SSL数字证书安装指南
第一步:证书签章要求 (CSR) 产生说明
安装 openssl(加密工具)
# yum install mod_ssl openssl
产生证书私钥和证书请求文件(CSR)
从Email地址开始,下面的信息都不需要,请保留为空,直接回车即可。在完成了如上的交互信息输入后,当前目录下将产生两个文件:.key (公钥) 和 .csr (私钥)。请妥善保存这两个文件,请不要泄露私钥文件.
详细介绍命令:
字段 说明 示例
Country Name ISO国家代码(两位字符) CN
State or Province Name 所在省份 Guangdong
Locality Name 所在城市。请勿使用缩写,例如:Saint Louis, 而非 St. Louis Shenzhen
Organization Name 公司名称。如果您的公司或部门名称中有 &、@ 或其他使用 shift 键的符号,请拼出该符号或在注册时省略此字元。例如:XY & Z Corporation 会是 XYZ Corporation 或 XY and Z Corporation ABC eCommerce Limited
Organizational Unit Name 部门名称 IT Dept.
Common Name 申请证书的域名 www.abc.com
Email Address 不需要输入
A challenge password 不需要输入
验证您的证书签章要求
https://cryptoreport.websecurity.symantec.com/checker/
请确保 Signature algorithm: SHA256
提交CSR 给商服
请保管好key私钥文件,提交CSR等待证书签发 .
第二步:安装服务器证书
证书是审核完毕后您将会收到 ”服务器证书代码”。中级CA证书代码可透过服务商网页下载。为保障保障服务器证书在客户端的兼容性,服务器证书代码 与 中级CA证书代码 需要合并,再安装服务器。举例:服务器证书代码 档名为domain.crt 、中级CA证书代码档名为ca_intermediate.crt
domain.crt
ca_intermediate.crt
合并domain.crt 、ca_intermediate.crt 成上下段。域名证书在上,中级证书在下,中间不空行。
存为domain.crt
附录:如何辨识中级证书
每张证书都会显示发行者,如下:
以上例子有 Symantec Class 3 EV SSL CA – G3, GeoTrust SSL CA – G3, RapidSSL SHA256 – CA。这就是各个证书对应的中级证书。
所谓 “证书安全链” 就是结合秘钥,域名证书,和中级证书,串连起来的加密链,确保加密数据的安全。
1、 修改nginx.conf文件
Nginx的参数配置都在nginx.conf文件中,SSL配置也是如此,下面就是配置举例:
http {
server {
listen 443;
ssl on;
ssl_certificate /etc/nginx/certs/domain.crt;
ssl_certificate_key /etc/nginx/certs/server.key;
ssl_verify_depth 1;
keepalive_timeout 70;
}
}
配置参数说明如下:
在Nginx下的证书备份是非常简单的,打开nginx.conf文件,找到ssl_certificate和ssl_certificate_key指定的2个文件,通常是.cer(.crt)和.key文件,将这两个文件复制到备份媒质上即可。
listen 443:SSL协议监听的端口,SSL协议缺省使用443端口。
server_name:指定SSL网站主机名。
ssl on:SSL功能打开,采用SSL通信协议。
ssl_certificate:证书文件,server.crt
ssl_certificate_key:私钥文件,server. key
ssl_verify_client on: 要求SSL客户证书认证。
ssl on:SSL 功能打开,采用SSL通信协议。
ssl_verify_depth 1: SSL客户证书认证链长度。
2、 重新启动nginx
/etc/init.d/nginx restart 第三步:设置OCSP装订
OCSP (Online Certificate Status Protocol,在线证书状态协议) 是维护服务器和其它网络资源安全性的两种普遍模式之一。OCSP装订(英语:OCSP Stapling),是一个TLS证书状态查询扩展,作为在线证书状态协议的代替方法对X.509证书状态进行查询。服务器在TLS握手时发送事先缓存的OCSP响应,用户只需验证该响应的有效性而不用再向数字证书认证机构(CA)发送请求。
OCSP装订需求NGINX 1.3.7 版本或以上。
检测Nginx版本
# nginx -v
3.1 设定
1. 配置OCSP装订指示,在nginx.conf 加入:
ssl_stapling on;
ssl_stapling_verify on;
2. 配置OCSP装订转换机 (非强制)
resolver 8.8.8.8 8.8.4.4 valid=300s;
resolver_timeout 5s;
3. 配置ssl_trust certificate 指示
为了通过OCSP装订审核,终端服务器需要先配置根证书和中级证书,指令如下:
ssl_trusted_certificate /etc/ssl/CA.crt
以上的 CA.crt 范例内容包含所关联根证书和中级证书。完整范例如下:
server {
listen 443 ssl;
server_name serverhostname;
ssl_certificate /etc/ssl/SSL_Cert.crt;
ssl_certificate_key /etc/ssl/cert_key.key;
ssl_trusted_certificate /etc/ssl/CA.crt
ssl_stapling on;
ssl_stapling_verify on;
resolver 8.8.8.8 8.8.4.4 valid=300s;
resolver_timeout 5s;
}
注意:若在服务器配置OCSP装订,终端服务器的OCSP请求必须默认允许连接到赛门铁克OCSP服务器。若您的服务器是安装在防火墙后端,则必须创建防火墙策略外接链接允许赛门铁克OCSP。
使用Openssl工具验证终端服务器ssl证书与赛门铁克OCSP链接,请参考以下文档:
https://knowledge.symantec.com/support/mpki-for-ssl-support/index?page=content&actp=CROSSLINK&id=HOWTO111088
保存nginx.conf档并重启 Nginx
/etc/init.d/nginx restart
3.2 验证OCSP装订
只有 openssl 工具版本 0.9.8k或以上才能验证OCSP装订。
# openssl s_client -connect yourdomain.com:443 -tls1 -tlsextdebug -status
范例显示结果:
OCSP response:
======================================
OCSP Response Data:
OCSP Response Status: successful (0x0)
若显示以上结果说明OCSP装订已经配置成功,不成功则显示:
OCSP response:
======================================
OCSP response: no response sent
另一个验证是透过赛门铁克官网https://cryptoreport.websecurity.symantec.com/checker/
OCSP装订将显示 "Enabled" 或 "Not Enabled"
第四步:关闭不安全的加密方式 (cipher)
在提高网络服务器的SSL证书部署优化方面,我们通常建议系统管理员使用更加安全的加密套件,对于这一点,我们提出对常见的服务器支持的方案。
打开目录下 nginx.conf 文件在配置文件中加入(适用于nginx 1.0.6+ 和 1.1.0+):
ssl_protocols TLSv1.2 TLSv1.1 TLSv1;
ssl_prefer_server_ciphers on;
ssl_ciphers EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH;
第五步:设置http自动跳转到https
nginx配置SSL证书之后,配置如下:
server {
listen 80 default backlog=2048;
listen 443;
server_name domain.com;
root /var/www/html;
ssl on;
ssl_certificate /etc/nginx/certs/domain.crt;
ssl_certificate_key /etc/nginx/certs/server.key;
} http访问的时候,报错如下:
400 Bad Request
The plain HTTP request was sent to HTTPS port. Sorry for the inconvenience.
Please report this message and include the following information to us.
Thank you very much!
说是http的请求被发送到https的端口上去了,所以才会出现这样的问题。
server {
listen 80 default backlog=2048;
listen 443 ssl;
server_name domain.com;
root /var/www/html;
# ssl on;
ssl_certificate /etc/nginx/certs/domain.crt;
ssl_certificate_key /etc/nginx/certs/server.key;
}
把ssl on;这行去掉,ssl写在443端口后面。这样http和https的链接都可以用,完美解决。
天下数据手机站 关于天下数据 联系我们 诚聘英才 付款方式 帮助中心 网站备案 解决方案 域名注册 网站地图
天下数据18年专注海外香港服务器、美国服务器、海外云主机、海外vps主机租用托管以及服务器解决方案-做天下最好的IDC服务商
《中华人民共和国增值电信业务经营许可证》 ISP证:粤ICP备07026347号
朗信天下发展有限公司(控股)深圳市朗玥科技有限公司(运营)联合版权
深圳总部:中国.深圳市南山区深圳国际创新谷6栋B座10层 香港总部:香港上環蘇杭街49-51號建安商業大廈7樓
7×24小时服务热线:4006388808香港服务电话:+852 67031102
本网站的域名注册业务代理北京新网数码信息技术有限公司的产品