linux下 Let’s Encrypt + nginx 开启https

2023年 10月 2日 58.4k 0

用到certbot,官网:certbot.eff.org/

系统环境:Centos7,跟着下面每行命令照着输入就行:

yum install snapd

systemctl enable --now snapd.socket

ln -s /var/lib/snapd/snap /snap

  • 下面这步可能需要等待1分钟左右的时间

snap install --classic certbot

ln -s /snap/bin/certbot /usr/bin/certbot

  • 在nginx.conf里面配置想要申请证书的域名,同时这一步也是后续增加其他域名的HTTPS证书的开始步骤

例如:

server {
    server_name abc.com
}
  • 这一步需要看nginx配置目录在哪里,用nginx -t命令可以查看,然后把路径输入到conf目录为止就行,例如我的是在/www/server/nginx/conf

certbot --nginx --nginx-server-root /www/server/nginx/conf

然后就会有生成证书引导:输入邮箱、同意条款、选择域名(有哪些域名能选择取决于你的nginx.conf配置了哪些域名,例如上一步配置了abc.com)等等

搞完了之后就会给你的nginx配置自动写上你之前选择的域名的https配置,就成功开启HTTPS了,并且certbot会建立脚本来检测过期的证书,实现自动续期

举例nginx的一个网站初步完整的配置:

server {
    # 监听80端口,也就是域名默认的
    listen 80;
    # 网站前端文件位置
    root /www/wwwroot/test_spring/dist;
    # 监听域名
    server_name XXX.com;
    # 网站访问日志
    error_log /www/wwwroot/test_spring/error.log;
    # 网站错误日志
    access_log /www/wwwroot/test_spring/access.log;
    # 强制HTTPS(原理为如访问的端口非443则都强制跳到https)
    if ($server_port !~ 443) {
        rewrite ^(/.*)$ https://$host$1 permanent;
    }
    # 向HTTP响应头中添加HSTS策略,有助于提高通信的安全性
    add_header Strict-Transport-Security "max-age=31536000";
    # Certbot自动生成的https配置开始
    listen 443 ssl; # managed by Certbot
    ssl_certificate /etc/letsencrypt/live/XXX.XXX.top/fullchain.pem; # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/tXXX.XXX.top/privkey.pem; # managed by Certbot
    # 引入Certbot生成的SSL/TLS的最佳实践配置选项,如ssl_protocols等等
    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
    # Certbot自动生成的https配置结束
}

相关文章

服务器端口转发,带你了解服务器端口转发
服务器开放端口,服务器开放端口的步骤
产品推荐:7月受欢迎AI容器镜像来了,有Qwen系列大模型镜像
如何使用 WinGet 下载 Microsoft Store 应用
百度搜索:蓝易云 – 熟悉ubuntu apt-get命令详解
百度搜索:蓝易云 – 域名解析成功但ping不通解决方案

发布评论