立即注册 找回密码

QQ登录

只需一步,快速开始

查看: 5502|回复: 0

[通用使用教程] Linux下使用Nginx详细配置HTTPS的具体解决方案

[复制链接]
发表于 2016-12-3 19:07:55 | 显示全部楼层 |阅读模式
道勤网-数据www.daoqin.net

亲注册登录道勤网-可以查看更多帖子内容哦!(包涵精彩图片、文字详情等)请您及时注册登录-www.daoqin.net

您需要 登录 才可以下载或查看,没有账号?立即注册

x
我一度以为只要可以通过https访问网站SSL就算配置完成了,但前几天网友反馈说移动设备下出现证书错误,我还以为是刚配置完缓存的原因,后来自己查了一些资料,发现虽然自己的网站可以通过https访问了,但还有一些参数没有配置,造成了一些旧设备上出现证书错误。
通过下面这个地址可以检测你的证书情况
https://www.ssllabs.com/ssltest/index.html
一开始我的检测结果C,分数也比较低,重新配置后,duang 达到了A+。

Linux下使用Nginx详细配置HTTPS方案01

Linux下使用Nginx详细配置HTTPS方案01
下面说下配置中的一些参数,和可能出现的错误。
启用ssl
一般来说在你证书签发后,即可在网站的nginx配置文件中添加如下配置就可以通过https访问了
比如道勤小编的配置文件路径 /usr/local/nginx/conf/vhost/
  1. server {
  2.     listen              443 ssl;
  3.     server_name         www.exehack.net;
  4.     ssl_certificate     www.exehack.net.crt;  #请修改为你的证书绝对路径
  5.     ssl_certificate_key www.exehack.net.key;  #请修改为你的证书密钥的绝对路径
  6. ...
  7. }
复制代码

如果这通过https访问长时间没有响应,检查下自己的443端口是否开启。
dhparam
执行下列命令
openssl dhparam -out /etc/nginx/ssl/dhparam.pem 2048
然后在配置文件中加入
  1. ssl_dhparam /etc/nginx/ssl/dhparam.pem;
复制代码
注意文件路径要和你的一致!
ssl_protocols和ssl_ciphers
SSLv3是有漏洞的,所以不应该启用这货,并启用启用向前保密。
  1. ssl_prefer_server_ciphers on;
  2. ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
  3. ssl_ciphers EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;
复制代码
session resumption
  1. ssl_session_cache shared:SSL:50m;
  2. ssl_session_timeout 5m;
复制代码


ocsp stapling
  1. resolver 8.8.8.8;
  2. ssl_stapling on;
  3. ssl_trusted_certificate /etc/nginx/ssl/example_com.crt;
复制代码
HSTS
  1. add_header Strict-Transport-Security "max-age=63072000; includeSubdomains;";
复制代码

Linux下使用Nginx详细配置HTTPS方案02

Linux下使用Nginx详细配置HTTPS方案02

includeSubdomains为可选参数,如果你的子域名没证书,不要添加这个参数。max-age为过期时间,不到设置的过短。
几个错误
the chain is incomplete
出现这个问题主要是crt里的证书不全,以comodo为例,需要使用3个证书,当你少添加的时候会出现这个问题。
Chain issues – Contains anchor
删掉第一个root证书即可
完整HTTPS配置文件
一定要注意证书的路径,不要直接复制使用
  1. server {
  2.   listen 443 ssl default deferred;
  3.   server_name example.com;
  4.   ssl_certificate /etc/nginx/ssl/example_com.crt;
  5.   ssl_certificate_key /etc/nginx/ssl/example_com.key;
  6.   ssl_session_cache shared:SSL:50m;
  7.   ssl_session_timeout 5m;
  8.   ssl_dhparam /etc/nginx/ssl/dhparam.pem;
  9.   ssl_prefer_server_ciphers on;
  10.   ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
  11.   ssl_ciphers "ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4";
  12.   resolver 8.8.8.8;
  13.   ssl_stapling on;
  14.   ssl_trusted_certificate /etc/nginx/ssl/example_com.crt;
  15.   add_header Strict-Transport-Security "max-age=31536000; includeSubdomains;";

  16.   # ... the rest of your configuration
  17. }
复制代码


强制HTTPS
一般来说,只需要开启HSTS 即可,如需强制则将80端口301到https
  1. server {
  2.     listen 80;
  3.     return 301 https://$host$request_uri;
  4. }
复制代码





道勤主机提供365天*24小时全年全天无休、实时在线、零等待的售后技术支持。竭力为您免费处理您在使用道勤主机过程中所遇到的一切问题! 如果您是道勤主机用户,那么您可以通过QQ【792472177】、售后QQ【59133755】、旺旺【诠释意念】、微信:q792472177免费电话、后台提交工单这些方式联系道勤主机客服! 如果您不是我们的客户也没问题,点击页面最右边的企业QQ在线咨询图标联系我们并购买后,我们为您免费进行无缝搬家服务,让您享受网站零访问延迟的迁移到道勤主机的服务!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

道勤网- 推荐内容!上一条 /2 下一条

!jz_fbzt! !jz_sgzt! !jz_xgzt! 快速回复 !jz_fhlb! !jz_lxwm! !jz_gfqqq!

关于我们|手机版|小黑屋|地图|【道勤网】-www.daoqin.net 软件视频自学教程|免费教程|自学电脑|3D教程|平面教程|影视动画教程|办公教程|机械设计教程|网站设计教程【道勤网】 ( 皖ICP备15000319号-1 )

GMT+8, 2024-11-19 18:38

Powered by DaoQin! X3.4 © 2016-2063 Dao Qin & 道勤科技

快速回复 返回顶部 返回列表