Nginx安装
Ubuntu系统
1
| sudo apt install nginx -y
|
ACME安装
1 2 3 4 5 6
| git clone https://github.com/acmesh-official/acme.sh.git
cd acme.sh ./acme.sh --install -m lusyoe@163.com
|
ACME DNS自动验证(阿里云)
访问阿里云RAM控制台:https://ram.console.aliyun.com/users
创建子用户,勾选使用永久AccessKey访问

复制保存AccessKeyID和AccessKeySecret

修改用户权限
进入用户详情—>权限管理—>新增权限

搜索DNS,勾选以上两个权限:AliyunHTTPDNSFullAccess、AliyunDNSFullAccess
设置环境变量
1 2 3 4
| export Ali_Key="<你的Ali_Key>" export Ali_Secret="<你的Ali_Secret>"
source ~/.bashrc
|
修改默认 CA(可选)
acme.sh 脚本默认 CA 服务器是 ZeroSSL,有时可能会导致获取证书的时候一直出现:Pending,The CA is processing your order,please just wait.
只需要把 CA 服务器改成 Let's Encrypt 即可,虽然更改以后还是有概率出现 pending,但基本 2-3 次即可成功
1
| acme.sh --set-default-ca --server letsencrypt
|
自动验证DNS并生成证书
1 2 3
| cd acme.sh
./acme.sh --issue --dns dns_ali -d lusyoe.com -d *.lusyoe.com
|
安装ACME证书(Nginx)
1 2 3 4 5 6 7 8
| mkdir -p /etc/nginx/ssl
./acme.sh --installcert -d lusyoe.com \ --key-file /etc/nginx/ssl/lusyoe.com.key \ --fullchain-file /etc/nginx/ssl/fullchain.cer \ --reloadcmd "systemctl restart nginx"
|
Nginx配置
编辑配置文件:
vim /etc/nginx/sites-available/default
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77
| server { listen 80; listen [::]:80; server_name lusyoe.com www.lusyoe.com; return 301 https://lusyoe.com$request_uri; }
server { listen 443 ssl; server_name www.lusyoe.com;
ssl_certificate /etc/nginx/ssl/fullchain.cer; ssl_certificate_key /etc/nginx/ssl/lusyoe.com.key; return 301 https://lusyoe.com$request_uri; }
server { listen 443 ssl http2; listen [::]:443 ssl http2; server_name lusyoe.com; location / { proxy_pass http://127.0.0.1:3000; proxy_redirect off; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Real-Port $remote_port; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header HTTP_X_FORWARDED_FOR $remote_addr; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header Host $host; proxy_set_header X-NginX-Proxy true; proxy_set_header Accept-Encoding ""; } log_format main '$remote_addr - $host - $remote_user [$time_local] "$request" ' '$request_time $request_length ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent"'; access_log /var/log/nginx/access.log main; error_log /var/log/nginx/error.log error; ssl_certificate /etc/nginx/ssl/fullchain.cer; ssl_certificate_key /etc/nginx/ssl/lusyoe.com.key; ssl_dhparam /etc/nginx/ssl/dhparam; add_header Strict-Transport-Security "max-age=63072000" always; ssl_stapling on; ssl_stapling_verify on; ssl_trusted_certificate /etc/nginx/ssl/fullchain.cer; resolver dns21.hichina.com dns22.hichina.com valid=300s; resolver_timeout 5s; }
|