设为首页 收藏本站
查看: 1319|回复: 0

[经验分享] nginx 配置 ssl

[复制链接]

尚未签到

发表于 2018-11-11 11:04:44 | 显示全部楼层 |阅读模式
  一、配置 SSL 证书
  完整的 ssl 证书分为4个部分:
  CA根证书、中级证书、域名证书、证书密钥(仅用户持有)
  以 EXAMPLE PositiveSSL 证书为例,将收到四份文件:
  根证书 - AddTrustExternalCARoot.crt
  中级证书 - EXAMPLERSAAddTrustCA.crt
  中级证书 - EXAMOLERSADomainValidationSecureServerCA.crt
  您的域名证书 - example_com.crt
  或者会收到两个文件:
  CA 证书串 - example_com.ca-bundle
  您的域名证书 - example_com.crt
  按照 “域名证书 -> 中间证书 -> 根证书” 的顺序串联为证书链,我们可以使用cat命令串联证书(就是按顺序将4个文件的内容写到一个文件中)
  cat example_com.crt COMODORSADomainValidationSecureServerCA.crt COMODORSAAddTrustCA.crt AddTrustExternalCARoot.crt > example_com.bundle.crt
  或者
  cat example_com.crt example_com.ca-bundle > example_com.bundle.crt
  得到 example_com.bundle.crt 后,和密钥文件 example_com.key 一同上传至服务器并保存在安全的位置,例如/etc/ssl/private 目录下 (没有此目录请创建)。
  二、配置nginx
  样例:
  // 需要一个单独的server监听80端口,之后将所有的请求强制重定向到https协议
  server {
  listen 80;
  # listen [::]:80;            # 如果需要同时侦听 IPv6,取消此行注释
  server_name www.example.com;            # 改成需要的域名
  rewrite ^ https://www.example.com$request_uri? permanent;      # 使用rewrite重定向
  }
  server {
  listen 443 ssl;
  # listen [::]:443 ssl;
  server_name www.example.com;
  ssl on;
  ssl_certificate /etc/ssl/private/www_example_com.crt;
  ssl_certificate_key /etc/ssl/private/www_example_com.key;
  ssl_prefer_server_ciphers on;
  ssl_dhparam /etc/ssl/certs/dhparam.pem;
  ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
  ssl_ciphers "EECDH+ECDSA+AESGCM EECDH+aRSA+AESGCM EECDH+ECDSA+SHA384 EECDH+ECDSA+SHA256 EECDH+aRSA+SHA384 EECDH+aRSA+SHA256 EECDH+aRSA+RC4 EECDH EDH+aRSA !aNULL !eNULL !LOW !3DES !MD5 !EXP !PSK !SRP !DSS !RC4";                                        keepalive_timeout 70;
  ssl_session_cache shared:SSL:10m;
  ssl_session_timeout 10m;
  add_header Strict-Transport-Security max-age=63072000;
  add_header X-Frame-Options DENY;
  add_header X-Content-Type-Options nosniff;
  root /var/www/example.com;
  index index.html;
  location / {
  try_files $uri $uri/ /index.html;
  }
  }
  三、提升安全性
  1、生成 DHE 参数
  为了避免使用 OpenSSL 默认的 1024bit DHE 参数,我们需要生成一份更强的参数文件:
  cd /etc/ssl/certsopenssl dhparam -out dhparam.pem 4096
  建议使用性能强劲的平台生成此文件,例如最新版的至强物理机。如果您只有一台小型 VPS,请使用 openssl dhparam -out dhparam.pem 2048 命令生成 2048bit 的参数文件。
  完成后,在 SSL 配置下添加一行:
  ssl_dhparam /etc/ssl/certs/dhparam.pem;
  注意:这种提升安全性的方法会牺牲部分性能,如果没有必要的话不建议采用
  2、启用 HSTS
HTTP Strict Transport Security (HSTS) 可以使浏览器第一次访问您的站点后即记住仅通过 HTTPS 与您的站点通信,可以大大提升安全性。  在SSL配置下添加:
  add_header Strict-Transport-Security max-age=63072000;
  add_header X-Frame-Options DENY;
  add_header X-Content-Type-Options nosniff;


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.iyunv.com/thread-633633-1-1.html 上篇帖子: 12.6 Nginx安装;12.7 Nginx默认虚拟主机;12.8 Nginx用户认证;12.9 下篇帖子: (https)nginx - tomcat(http)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

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