CentoOS 7 升级 Openssl

OpenSSL 1.1.1 已发布,这是新的长期支持版本(LTS),开发团队承诺至少提供五年支持。

自 1.1.0 发布以来,已有超过 200 位个人贡献者提交了近 5000 个 commits。OpenSSL 1.1.1 最重要的变化就是添加对 TLS v1.3 (RFC8446) 的支持。

TLS v1.3 的优势包括

  • 由于减少了客户端和服务器之间所需的往返次数,缩短了连接时间。

  • 在某些情况下,客户端能够立即开始将加密数据发送到服务器而无需与服务器进行任何往返(称为 0-RTT 或“early data”)。

  • 由于删除了各种过时和不安全的加密算法及握手加密,提高了安全性。

OpenSSL 1.1.1 其他亮点包括:

完全重写 OpenSSL 随机数生成器以引入以下功能

  • The default RAND method now utilizes an AES-CTR DRBG according to NIST standard SP 800-90Ar1.

  • Support for multiple DRBG instances with seed chaining.

  • There is a public and private DRBG instance.

  • The DRBG instances are fork-safe.

  • Keep all global DRBG instances on the secure heap if it is enabled.

  • The public and private DRBG instance are per thread for lock free operation

支持各种新的加密算法,包括

  • SHA3

  • SHA512/224 and SHA512/256

  • EdDSA (including Ed25519 and Ed448)

  • X448 (adding to the existing X25519 support in 1.1.0)

  • Multi-prime RSA

  • SM2

  • SM3

  • SM4

  • SipHash

  • ARIA (including TLS support)

  • 旁路攻击安全性改进

  • Maximum Fragment Length TLS 扩展支持

  • 新增 STORE 模块,它实现了一个规格一致的基于 URI 的存储读取器,可包含密钥、证书、CRL 和许多其他对象。

操作步骤

下载 openssl 最新的长期支持版本 1.1.1.1

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

解压后进入目录执行

./config -fPIC --prefix=/usr/local/openssl enable-shared
./config -t
make && make install

ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl
ln -s /usr/local/ssl/include/openssl /usr/include/openssl


然后执行

echo “/usr/local/ssl/lib” >> /etc/ld.so.conf

ldconfig -v

查看版本

    [root@iz28wru16cpz ~]# openssl version
OpenSSL 1.1.1  11 Sep 2018

nginx 升级

pushd openssl-1.1.1
wget https://raw.githubusercontent.com/hakasenyang/openssl-patch/master/openssl-equal-1.1.1.patch
patch -p1 < openssl-equal-1.1.1.patch
popd

pushd nginx-1.15.3
wget https://raw.githubusercontent.com/kn007/patch/d6afe6aa688d6ee0691bea8303e5c8e93a3239b5/nginx.patch
wget https://raw.githubusercontent.com/kn007/patch/c59592bc1269ba666b3bb471243c5212b50fd608/nginx_auto_using_PRIORITIZE_CHACHA.patch 
patch -p1 < nginx.patch
patch -p1 < nginx_auto_using_PRIORITIZE_CHACHA.patch
popd


./configure --prefix=/usr/local/nginx --user=www --group=www --with-pcre=/opt/nginx/pcre-8.41 --with-http_v2_module --with-http_ssl_module --with-zlib=/opt/nginx/zlib-1.2.11 --with-openssl=/root/openssl-1.1.1  --add-module=/opt/nginx/ngx_brotli --with-http_v2_hpack_enc