前言
在CentOS版本的Linux系统下使用
yum install -y nginx
直接安装。执行
nginx -V
命令,查看nginx版本。nginx版本:1.16.1, OpenSSL: 1.0.2k
不能通过ATS检测,SSL Server Test评分【F】也很低。所以需要手动安装最新版本。
环境
安装环境:CentOS 7
安装openssl版本:1.1.1g
安装Nginx版本:1.18.0
SSL证书申请机构:Let’s Encrypt ,支持苹果ATS标准
SSL申请工具:acme.sh、SSL For Free在线生成
SSL 测试: SSL Server Test
配置步骤
安装新版本Openssl
访问Openssl官网,查看是否有最新版本:https://www.openssl.org/source
# !bin/bash
// 1、获取安装包
wget https://www.openssl.org/source/openssl-1.1.1g.tar.gz
// 2、解压安装包,并进入目录
tar -zxvf openssl-1.1.1g.tar.gz
cd openssl-1.1.1g
// 3、安装依赖程序
yum install zlib
// 4、编译安装
./config --prefix=/usr/local/openssl shared zlib --enable-tlsext
make depend
make && make install
// 5、配置使用新版本
ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl
ln -s /usr/local/openssl/include/openssl /usr/include/openssl
// 6、更新动态链接库
echo "/usr/local/lib64" >> /etc/ld.so.conf
// 7、重新加载动态链接库
ldconfig -v
// 8、查看版本
openssl version
安装Nginx, 支持TLS1.2+
安装Nginx时候指定编译下载的openssl的安装包路径。 --with-openssl=/root/downloads/openssl-1.1.1g
该下载的openssl支持TLS1.2+,最新版本是肯定支持的。
官网查看最新版本:http://nginx.org/en/download.html
# !bin/bash
// 1、获取并解压安装包
wget http://nginx.org/download/nginx-1.18.0.tar.gz
tar -zxvf nginx-1.18.0.tar.gz
cd nginx-1.18.0
// 2、配置并安装
./configure --prefix=/usr/local/nginx \
--with-http_ssl_module \
--with-http_v2_module \
--with-openssl=/root/downloads/openssl-1.1.1g
make && make install
// 3、配置使用新版本
ln -s /usr/local/nginx/sbin/nginx /usr/bin/nginx
//查看信息
nginx -V
//启动nginx服务
nginx
使用acme.sh申请SSL证书,并安装到nginx或其他服务
注意点:
- 使用acme.sh之前,先安装支持TLSv1.2的Openssl工具(最新版本就可以)。
- 使用不支持TLSv1.2的Openssl工具申请的证书,在SSL Server Test测试不支持TLSv1.2。
- 申请的域名使用*.aa.com,一个证书配置所有的二级域名上。
# !bin/bash
acme.sh --issue --dns dns_dp -d *.aa.com
修改nginx.conf文件
server {
listen 443 ssl;
server_name test.codepower.top;
ssl_certificate cert.pem;
ssl_certificate_key cert.key;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;
location / {
root html;
index index.html index.htm;
}
}
注意:
以上配置后,浏览器提示不安全连接。检查网页中的图片、css、js是不是使用http请求方式。