【网站建设:HTTPS - 如何生成免费SSL证书,并自动更新】

某阿X云服务平台的证书托管服务中,有关于HTTPS证书获取,生成和自动更新的功能。但其作为一项增值服务,每月就要几百元 。但是这个我们可以自己写几行代码来实现,

  • 证书生成
  • 更新到Nginx
  • 自动更新

假设我们有个域名wu123.cn要为域名 生成 SSL 证书和密钥。

使用 Let's Encrypt 免费 SSL 证书:Let's Encrypt 是一个免费的、自动化的、开放的证书颁发机构 (CA),可以为你的域名生成免费的 SSL 证书。

1. 证书生成

使用 Let's Encrypt 生成 SSL 证书,Let's Encrypt 提供免费的 SSL 证书,并且可以使用 Certbot 工具自动生成和管理证书。

安装 Certbot,在 Ubuntu 上安装 Certbot

复制代码
sudo apt update
sudo apt install certbot python3-certbot-nginx

2. 更新到Nginx

2.1 使用 Certbot 生成 SSL 证书,生成 SSL 证书

复制代码
sudo certbot --nginx -d wu123.cn -d www.wu123.cn

Certbot 会自动配置 Nginx 并生成 SSL 证书和密钥。

证书和密钥文件通常会生成在 /etc/letsencrypt/live/wu123.cn/ 目录下。

2.2 配置 Nginx 使用 SSL 证书,一个 Nginx 配置示例,展示了如何使用生成的 SSL 证书:

Nginx 配置文件 (/etc/nginx/sites-available/default)

复制代码
server {
    listen 80;
    server_name wu123.cn www.wu123.cn;

    location / {
        return 301 https://$host$request_uri;
    }
}

server {
    listen 443 ssl;
    server_name wu123.cn www.wu123.cn;

    ssl_certificate /etc/letsencrypt/live/wu123.cn/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/wu123.cn/privkey.pem;

    location / {
        proxy_pass <http://localhost:3000>; # 你的应用服务器
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

3. 自动更新

docker 复制代码
# 测试一下自动更新
sudo certbot renew --dry-run
# 添加到定时任务
sudo crontab -e
0 0 * * 0 /usr/bin/certbot renew --quiet

至此,通过以上三步,便完成了HTTPS证书的生成,以及更新维护。

相关推荐
phiilo6 分钟前
golang 设置进程退出时kill所有子进程
后端
花花无缺7 分钟前
python自动化-pytest-用例发现规则和要求
后端·python
程序员小假9 分钟前
我们来说一说 Cglib 与 JDK 动态代理
后端
2501_916008891 小时前
iOS 抓包工具有哪些?全面盘点主流工具与功能对比分析
android·ios·小程序·https·uni-app·iphone·webview
2501_915921431 小时前
iOS混淆工具实战 视频流媒体类 App 的版权与播放安全保护
android·ios·小程序·https·uni-app·iphone·webview
摆烂工程师2 小时前
教你如何认证 Gemini 教育优惠的二次验证,薅个 1年的 Gemini Pro 会员
后端·程序员·gemini
绝无仅有2 小时前
未来教育行业的 Go 服务开发解决方案与实践
后端·面试·github
程序员爱钓鱼3 小时前
Go语言实战案例- 命令行参数解析器
后端·google·go
XMYX-03 小时前
解决 Apache/WAF SSL 证书链不完整导致的 PKIX path building failed 问题
网络协议·apache·ssl
心在飞扬3 小时前
Redis 介绍与 Node.js 使用教程
后端