奇诺分享 | ccino.net

  • 首页
  • VPS
    • VPS申请
    • VPS配置
    • 科学上网
  • 网站建设
    • WordPress
  • 程序猿
    • 开发工具
    • 微服务
    • 容器
    • 分布式
    • 数据库
  • 杂项
  • 关于
  • Privacy Policy
生活不只是眼前的苟且,还有诗和远方!
  1. 首页
  2. 网站建设
  3. WordPress
  4. 正文

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

2017年5月16日 1104点热度 0人点赞 0条评论

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

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

配置完后如图:

QQ图片20170209122645.png

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

CentOS 升级 openssl:

1. 安装依赖环境:

yum install pcre-devel zlib unzip git

2. 查看当前 OpenSSL 版本:

openssl version

得到结果:

OpenSSL 1.0.1e-fips 11 Feb 2013

3. 下载 OpenSSL 的最新版:

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

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

4. 进入目录编译安装:

    1. cd openssl-1.1.0c

 

    1. ./config --prefix=/usr --openssldir=/etc/ssl --libdir=lib shared zlib-dynamic

 

    1. make depend

 

    1. make && make install

 

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

yum install gcc gcc-c++ autoconf automake

如果提示:

zlib.h: No such file or directory

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

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

 

5. 拷贝 so 库到指定位置

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

 

6. 查看 OpenSSL 最新版本

openssl version

OpenSSL 1.1.0d 26 Jan 2017

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

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

首先开启 ssl 和http/2

listen 80;
listen 443 ssl http2;
server_name limh.me www.limh.me;
index index.php index.html index.htm default.php default.htm default.html;
root /www/wwwroot/limh.me;
#error_page 404/404.html;
ssl_certificate      	key/limh.me/key.csr;
ssl_certificate_key  key/limh.me/key.key;

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

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

配置到 nginx:

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

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


ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_stapling on;
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";
ssl_prefer_server_ciphers on;

ssl session 配置:

 

ssl_session_cache shared:SSL:10m;

ssl_session_timeout 10m;

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

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

完整配置文件:

server {
        listen 443 ssl http2;
        server_name www.example.com;
        ssl on;
        ssl_certificate /etc/ssl/certs/你的证书.crt;
        ssl_certificate_key /etc/ssl/private/你的密钥.key;
        ssl_dhparam /etc/ssl/certs/dhparam.pem;
        ssl_session_cache shared:SSL:10m;
        ssl_session_timeout 10m;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_stapling on;
        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";
        ssl_prefer_server_ciphers on;
        add_header Strict-Transport-Security "max-age=63072000; includeSubdomains; preload";
        location / {
                # pass
        }
}

 

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

 

本文出自:https://limh.me/nginx_http2.html

本作品采用 知识共享署名 4.0 国际许可协议 进行许可
标签: https SSL
最后更新:2017年5月23日

奇诺分享 | ccino.net

点赞
< 上一篇
下一篇 >

文章评论

取消回复

本站推荐

新手建站五步

本博客TG频道,欢迎订阅:https://t.me/CCINOorg 

    大家准备建站时,肯定和奇诺一样无从着手,不用着急。按照以下“五步”就能方便的搭建好一个基于VPS的网站。“第六步”为高级功能,大家可以按需选择。

第一步,基础知识:

  • 虚拟主机、云主机和VPS的区别
  • Xen、OpenVZ、KVM三大VPS技术优劣势详解
  • Apache、nginx 、lighttpd性能比较
第二步,VPS申请:
  • 新手用户搬瓦工VPS购买图文指导教程
  • 免费试用vultr搭建及vultr服务器性能测试
第三步,一键web面版搭建:
  • 宝塔Linux面板 – 3月29日更新 – 3.5版
  • 简单实用的VPS主机面板–宝塔
第四步,域名申请:
  • Namesilo VS Godaddy域名注册的对比优势
  • Namesilo新域名注册图文教程
第五步,CMS安装配置:
  • WordPress入门 之 如何安装WordPress
  • WordPress程序文件说明
第六步,高级功能:
  • https的研究与总结
  • Let’s Encrypt – 免费时新的 SSL 证书
  • 常用Linux VPS/服务器(OpenVZ/KVM/XEN)加速、优化网络速度工具总结
   
最新 热点 随机
最新 热点 随机
清除CentOS 6或CentOS 7上的磁盘空间的方法 centos sqlite3安装及简单命令 Clash for Windows 使用简介 解决梯子在GFWList模式下不能正常看流媒体的问题 Sublime Text3—自带快捷键介绍 Sublime Text 3截止2019.04.08最新版本破解 3207
清除CentOS 6或CentOS 7上的磁盘空间的方法
Let’s Encrypted: 免费申请 泛域名/野卡证书 软件授权协议有什么作用,例如GPL、Apache License、CDDL、EPL这些协议有什么区别? 正确识别中国电信ChinaNet及纯CN2、半程CN2 lsyncd 实时同步 WordPress 常用数据库SQL查询语句大全 支持了HTTPS你的服务就是安全的吗?
标签聚合
VPS https SSL 证书 网站建设 优化 插件 WordPress

COPYRIGHT © 2021 奇诺分享 | ccino.net. ALL RIGHTS RESERVED.

THEME KRATOS MADE BY VTROIS