1、安装certbot

首先需要在ubuntu系统上安装certbot客户端,用于获取SSL证书,在终端中运行以下命令安装certbot

 sudo apt update
 sudo apt install certbot python3-certbot-nginx
 ​

安装完成后,你可以使用Certbot来为你的Nginx配置SSL证书。以下是如何使用Certbot配置SSL证书的步骤:

配置nginx

1、获取SLL证书

 sudo certbot --nginx

2、自动续订证书

Certbot通常会自动为你的SSL证书设置定时任务来进行续订。你无需手动操作,Certbot将会在证书即将到期时自动续订。

3、更新Nginx配置文件

Certbot会自动帮你修改Nginx的配置文件,将SSL证书的相关信息加入配置中,包括SSL证书文件路径等。因此,你无需手动修改Nginx配置文件。

请确保在配置SSL证书之前,你的Nginx配置文件中已经设置了域名,并且这个域名的DNS解析已经指向了你的服务器。Certbot会验证域名的所有权,确保你拥有该域名。

完成上述步骤后,你的Nginx配置文件会自动包含SSL证书的相关配置,实现了HTTPS的访问。需要注意的是,Certbot会自动配置SSL证书的续订任务,所以你无需担心证书过期的问题。

查看配置

查看certbot自动的配置

 root@stickerwu:/www# cat /etc/nginx/conf.d/admin.stickerwu.net.conf 
 server {
     server_name  admin.stickerwu.net;
 ​
     location / {
         root   /www/admin;
         index  index.html index.htm;
         # 解决页面刷新 404 问题
         try_files  $uri $uri/ /index.html @rewrites;
         # 首页一般没有强制缓存
         expires -1;
         add_header Cache-Control no-cache;
     }
 ​
     # 接口转发给后端处理
     location ~ ^/api {
         proxy_pass http://localhost:7001;
     }
 ​
     # 将以 /res 开头的请求转发到 localhost:7001
     location ~ ^/res {
         proxy_pass http://localhost:7001;
     }
     location ~ ^/static {
         proxy_pass http://localhost:7001;
     }
     location @rewrites {
         rewrite ^(.+)$ /index.html break;
     }
 ​
     listen 443 ssl; # managed by Certbot
     ssl_certificate /etc/letsencrypt/live/admin.stickerwu.net/fullchain.pem; # managed by Certbot
     ssl_certificate_key /etc/letsencrypt/live/admin.stickerwu.net/privkey.pem; # managed by Certbot
     include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
     ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
 ​
 }
 ​
 server {
     if ($host = admin.stickerwu.net) {
         return 301 https://$host$request_uri;
     } # managed by Certbot
 ​
 ​
     listen       80;
     server_name  admin.stickerwu.net;
     return 404; # managed by Certbot
 ​
 }