SSL 证书
SSL 证书
Let‘s Encrypt
-
安装cerbot。cerbot是let’s Encrypt推荐的管理客户端,可以自动续签
1
yum install certbot -y
-
生成证书
1
2
3
4
5
6
7
8#先停用nginx,再生成证书,
sudo nignx -s stop
# 不清楚自己网站根目录时这样生成、需要根据自己的域名修改
certbot certonly --standalone -d domain.com -d www.domian.com
#知道网站根目录时生成方式:这里的根目录是/var/www/domain 、需要根据自己的域名修改,
certbot certonly --webroot -w /var/www/domain -d domain.com -d www.domain.com -
证书就生成成功一般会放在
/etc/letsencrypt/live
目录内 -
配置nginx
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#将listen 80部分按自己的域名做如下修改,去掉location / 及 location /api/ 等部分
server {
listen 80;
listen [::]:80;
server_name www.domain.com domain.com;
add_header Strict-Transport-Security max-age=15768000;
return 301 https://$server_name$request_uri; #重定向到https
}
#增加一个listen 443,按自己域名做如下修改。将原listen 80内的 location / 及 location /api/ 等部分copy过来
server {
listen 443 ssl http2;
server_name www.domain.com domain.com;
add_header X-Frame-Options DENY;
add_header X-Content-Type-Options nosniff;
root /var/www/domain;
ssl_certificate /etc/letsencrypt/live/domain.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/domain.com/privkey.pem;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 60m;
location / {
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_set_header X-Nginx-Proxy true;
proxy_cache_bypass $http_upgrade;
proxy_pass http://nuxtapp; #反向代理nuxt
}
location /api/ {
proxy_pass http://127.0.0.1:8000;
proxy_set_header Host $host;
}
# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;
error_page 404 /404.html;
location = /404.html {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
} -
自动续签。
Let’s Encrypt默认3个月过期,需要我们设置cerbot客户端,让其自动更新证书,这里需要用到 crontab
1 |
|
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!