配置Nginx实现https协议,支持ATS

前言


在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.shSSL 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请求方式。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。