在Nginx Web服务器上配置TLS/SSL
修改配置文件
# vi /etc/nginx/conf.d/ssl.www.onitroad.com.conf
添加ssl设置,参考如下:
## START: SSL/HTTPS www.onitroad.com ### server { listen 443 http2; server_name www.onitroad.com; ssl on; ssl_certificate /etc/nginx/ssl/letsencrypt/www.onitroad.com/www.onitroad.com.cer; ssl_certificate_key /etc/nginx/ssl/letsencrypt/www.onitroad.com/www.onitroad.com.key; ssl_session_timeout 1d; ssl_session_cache shared:SSL:50m; ssl_session_tickets off; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+3DES:DH+3DES:RSA+AESGCM:RSA+AES:RSA+3DES:!aNULL:!MD5:!DSS; ssl_dhparam /etc/nginx/ssl/letsencrypt/www.onitroad.com/dhparams.pem; ssl_prefer_server_ciphers on; ## Improves TTFB by using a smaller SSL buffer than the nginx default ssl_buffer_size 8k; ## Enables OCSP stapling ssl_stapling on; resolver 8.8.8.8; ssl_stapling_verify on; ## Send header to tell the browser to prefer https to http traffic #add_header Strict-Transport-Security max-age=31536000; ## SSL logs ## access_log /var/log/nginx/www.onitroad.com_ssl_access.log; error_log /var/log/nginx/www.onitroad.com_ssl_error.log; #-------- END SSL config -------## root /var/www/localhost/htdocs; index index.html index.htm index.php; server_name www.onitroad.com; # configure php location ~ \.php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; include fastcgi.conf; } # rest of your config ## } ## END SSL www.onitroad.com ######
安装相关软件包
使用apk命令在Alpine Linux上安装以下命令
# apk add netcat-openbsd bc curl wget git bash openssl
同时还要安装libressl
# apk add libressl
如何升级acme.sh客户端?
执行以下命令升级acme.sh客户端
# acme.sh --upgrade
安装acme.sh客户端
使用git克隆acme.sh客户端
# cd /tmp/ # git clone https://github.com/Neilpang/acme.sh.git
安装acme.sh客户端:
# cd acme.sh/ # sudo -i # ./acme.sh --install
重新登录 或者执行以下命令使别名生效:
# source ~/.bashrc
测试一下
# acme.sh
测试
使用浏览器打开https站点
https://www.onitroad.com
如何续订证书?
执行以下命令:
# acme.sh --renew -d www.onitroad.com
证书续订计划任务
crontab计划任务也会尝试为您续订证书。
# crontab -l
输出示例:
0 0 * * * "/root/.acme.sh"/acme.sh --cron --home "/root/.acme.sh" > /dev/null
生成全局dhparam文件
执行以下命令以创建全局dhparam文件:
# mkdir -p /etc/nginx/ssl/letsencrypt/www.onitroad.com/ # cd /etc/nginx/ssl/letsencrypt/www.onitroad.com/ # openssl dhparam -dsaparam -out dhparams.pem 4096
创建/.well-known/acme-challenge/目录
在站点根目录下创建,并且设置权限
# D=/var/www/localhost/htdocs # mkdir -vp ${D}/.well-known/acme-challenge/ # chown -R nginx:nginx ${D}/.well-known/acme-challenge/ # chmod -R 0555 ${D}/.well-known/acme-challenge/
将颁发的证书安装到Nginx Web服务器
执行以下命令:
# acme.sh --installcert -d www.onitroad.com \ --keypath /etc/nginx/ssl/letsencrypt/www.onitroad.com/www.onitroad.com.key \ --fullchainpath /etc/nginx/ssl/letsencrypt/www.onitroad.com/www.onitroad.com.cer \ --reloadcmd '/etc/init.d/nginx restart'
为域名申请证书
语法为:
# acme.sh --issue -w $D -d www.onitroad.com -k 4096
其中
--issue
:申请新证书。-w /DocumentRootPath/
:域名对应站点的根目录-d www.onitroad.com
: 申请SSL证书的域名-k 4096
:指定域密钥的长度。
在Alpine Linux上如何为nginx安装Lets Encrypt证书?
如何为nginx配置HTTPS?
在Alpine Linux上如何安装Lets Encrypt 免费SSL/TLS证书?
日期:2020-03-23 08:03:56 来源:oir作者:oir