[教程]Centos升级openssl增强nginx的A+ SSL安全性,开启Http/2

Centos7默认的openssl版本过低,导致无论你怎么配置ssl网站都会一堆漏洞,评价F甚至更低。

漏洞参考这里:https://www.trustasia.com/OpenSSL-CVE-2016-2107-Padding-Oracle

测试ssl安全性地址:https://www.ssllabs.com/ssltest/

CentOS 升级 openssl:

1. 安装依赖环境:

  1. yum install pcre-devel zlib unzip git
 

2. 查看当前 OpenSSL 版本:

  1. openssl version
 

得到结果:

  1. OpenSSL 1.0.1e-fips 11 Feb 2013
 

3. 下载 OpenSSL 的最新版:

去官网 https://www.openssl.org/source/ 选择最新的就可以。我这边现在是 1.1.0d

  1. wget https://www.openssl.org/source/openssl-1.1.0c.tar.gz
  2. tar -zxvf openssl-1.1.0c.tar.gz
 

4. 进入目录编译安装:

 

  1. cd openssl-1.1.0c
  2. ./config --prefix=/usr --openssldir=/etc/ssl --libdir=lib shared zlib-dynamic
  3. make depend
  4. make && make install
 

如果不能make就说明没有安装gcc

  1. yum install gcc gcc-c++ autoconf automake
 

如果提示:

  1. zlib.h: No such file or directory
 

就说明缺少zlib的头文件, 开发包没装

  1. yum install zlib (系统默认已经装上)
  2. yum install zlib-devel
 

5. 拷贝 so 库到指定位置

  1. cp /usr/lib/libssl.so.1.1 /usr/lib64/libssl.so.1.1
  2. cp /usr/lib/libcrypto.so.1.1 /usr/lib64/libcrypto.so.1.1
 

6. 查看 OpenSSL 最新版本

  1. openssl version
 
  1. OpenSSL 1.1.0d 26 Jan 2017
 

nginx 配置,只贴出 SSL 相关,开启http2要求nginx版本1.9以后,一般都是1.10...

需要将配置放到 conf 的 server {} 位置。

首先开启 ssl 和http/2

  1. listen 80;
  2. listen 443 ssl http2;
  3. server_name limh.me www.limh.me;
  4. index index.php index.html index.htm default.php default.htm default.html;
  5. root /www/wwwroot/limh.me;
  6. #error_page 404/404.html;
  7. ssl_certificate key/limh.me/key.csr;
  8. ssl_certificate_key key/limh.me/key.key;
 

生成 dhparam.pem,作用自行百度...

  1. cd /etc/ssl/certs
  2. openssl dhparam -out dhparam.pem 4096
 

配置到 nginx:

  1. ssl_dhparam /etc/ssl/certs/dhparam.pem;
 

协议和 ciphers 选择,ciphers 的选择比较关键,这个配置中的 ciphers 支持大多数浏览器,但不支持 XP/IE6。

  1. ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
  2. ssl_stapling on;
  3. ssl_ciphers "ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA";
  4. ssl_prefer_server_ciphers on;
 

ssl session 配置:

  1. ssl_session_cache shared:SSL:10m;
  2. ssl_session_timeout 10m;
 

HSTS配置,这个对评分影响也比较大,但如果开启这个,需要全部网站都开启HTTPS 。

  1. add_header Strict-Transport-Security "max-age=63072000; includeSubdomains; preload";
 

完整配置文件:

  1. server {
  2. listen 443 ssl http2;
  3. server_name www.example.com;
  4. ssl on;
  5. ssl_certificate /etc/ssl/certs/你的证书.crt;
  6. ssl_certificate_key /etc/ssl/private/你的密钥.key;
  7. ssl_dhparam /etc/ssl/certs/dhparam.pem;
  8. ssl_session_cache shared:SSL:10m;
  9. ssl_session_timeout 10m;
  10. ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
  11. ssl_stapling on;
  12. ssl_ciphers "ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA";
  13. ssl_prefer_server_ciphers on;
  14. add_header Strict-Transport-Security "max-age=63072000; includeSubdomains; preload";
  15. location / {
  16. # pass
  17. }
  18. }
 

本教程也适用于Apache和其他类似环境,关于更多有关配置的说明和其他细节,参考:http://www.open-open.com/lib/view/open1430794673710.html

版权声明:若无特殊注明,本文为《技术分享宅》原创,转载请保留文章出处。
本文链接:https://www.pjax.xyz/soft/4.html
正文到此结束

热门推荐

发表吐槽

你肿么看?

你还可以输入 250 / 250 个字

嘻嘻 大笑 可怜 吃惊 害羞 调皮 鄙视 示爱 大哭 开心 偷笑 嘘 奸笑 委屈 抱抱 愤怒 思考 日了狗 胜利 不高兴 阴险 乖 酷 滑稽
未显示?请点击刷新

评论信息框
可使用QQ号实时获取昵称+头像

私密评论

吃奶的力气提交吐槽中...


既然没有吐槽,那就赶紧抢沙发吧!