nginx配置ssl的坑(TLSv1.3\ngx_http_ssl_module)

问题:nginx并配置https证书支持TLSv1.3

升级openssl

查看openssl版本openssl version,一般腾讯云为1.0.2k版本。
到官网www.openssl.org查看最新版本openssl,现在最新为1.1.1h版。

下载最新的openssl

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

解压并编译安装

tar -zxvf openssl-1.1.1h.tar.gz

cd openssl-1.1.1h

./config --prefix=/usr/local/openssl #如果此步骤报错,需要安装perl以及gcc包

make && make install

mv /usr/bin/openssl /usr/bin/openssl.bak #此步可以忽略

ln -sf /usr/local/openssl/bin/openssl /usr/bin/openssl #此步可以忽略

echo "/usr/local/openssl/lib" >> /etc/ld.so.conf

ldconfig -v # 设置生效

再次查看openssl版本

openssl version

问题:nginx启动报"ssl parameter requires ngx_http_ssl_module"

  • 下载nginx
wget http://nginx.org/download/nginx-1.18.0.tar.gz

tar -zxvf nginx-1.18.0.tar.gz

cd nginx-1.18.0/ #进入目录后执行./configure配置后执行make命令,make失败执行make lean后重新make
  • 重新make下nginx,最后openssl配置上面升级后的
--prefix= #安装nginx的位置
--with-openssl=#安装openssl的位置

./configure --prefix=/usr/local/openresty/nginx  --with-http_stub_status_module --with-http_ssl_module --with-http_v2_module --with-http_realip_module --with-http_gzip_static_module --with-stream_ssl_module --with-openssl=/usr/local/openssl-1.1.1t
  • 完成后执行make命令,make失败执行make clean后重新make
  • 配置后的nginx.config
server {
	listen       80;
	server_name  www.wetu.top;
	return 301 https://$host$request_uri; #转到https
}
server {
	listen 443 ssl;
	server_name www.wetu.top; 
	ssl_certificate  wetu.top_bundle.crt; 
	ssl_certificate_key wetu.top.key; 
	ssl_session_timeout 5m;
	ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
	ssl_protocols TLSv1.2 TLSv1.3;
	ssl_prefer_server_ciphers on;
	location / {
		root html;
		index index.html index.htm;
	}
}
  • 检查配置
    nginx -t
  • 启动nginx
    ./nginx
  • 停止
    ./nginx -s stop

你可能感兴趣的:(nginx,ssl,http)