基础环境准备
生成SSL证书前需确认服务器已安装OpenSSL工具链和Web服务器软件包。对于Linux系统,可通过包管理器安装openssl和nginx/apache组件,建议使用系统支持的稳定版本。
# Ubuntu/Debian
sudo apt install openssl nginx
# CentOS/RHEL
sudo yum install openssl httpd
OpenSSL生成自签名证书
通过OpenSSL命令行工具可快速生成测试用证书,具体流程如下:
- 生成2048位RSA私钥:
openssl genrsa -out server.key 2048
- 创建证书签名请求:
openssl req -new -key server.key -out server.csr
- 生成有效期为365天的证书:
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
此方法生成的自签名证书需手动配置到服务器并建立加密连接,但浏览器会提示证书不受信任。
Let’s Encrypt自动签发
Certbot工具可自动获取受信任的免费证书:
- 安装Certbot组件:
sudo apt install certbot python3-certbot-nginx
- 执行自动化签发命令:
sudo certbot --nginx -d example.com -d www.example.com
- 自动配置Nginx的SSL参数并完成证书部署
该方案生成证书的有效期为90天,需配合自动续期策略使用。
证书自动续期策略
通过crontab配置定时任务实现证书自动续期:
# 每周检查证书有效期
0 0 * * 0 certbot renew --quiet --post-hook "systemctl reload nginx"
Let’s Encrypt证书支持续期前30天内的自动更新请求,配合post-hook参数可实现服务无感更新。
自签名证书适合本地开发环境快速搭建,Let’s Encrypt方案则适用于生产环境的自动化部署。建议将证书更新任务纳入运维监控体系,确保持续的HTTPS服务可用性。