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