Appearance
SSL证书申请
为网站配置HTTPS需要SSL证书,本节介绍如何申请SSL证书。
证书类型
免费证书
- Let's Encrypt:免费、自动化、90天有效期
- Cloudflare SSL:免费、灵活
- ZeroSSL:免费、90天有效期
付费证书
- DigiCert:企业级、高信任度
- Comodo:性价比高
- GlobalSign:国际知名
Let's Encrypt证书
安装Certbot
Ubuntu/Debian
bash
sudo apt update
sudo apt install certbotCentOS/RHEL
bash
sudo yum install epel-release
sudo yum install certbot申请证书
单域名
bash
sudo certbot certonly --standalone -d example.com多域名
bash
sudo certbot certonly --standalone -d example.com -d www.example.com通配符域名
bash
sudo certbot certonly --manual --preferred-challenges dns -d "*.example.com"证书位置
/etc/letsencrypt/live/example.com/
├── cert.pem # 证书
├── chain.pem # 证书链
├── fullchain.pem # 完整证书链
└── privkey.pem # 私钥Cloudflare SSL证书
创建证书
- 登录Cloudflare控制台
- 选择域名
- SSL/TLS → Origin Server
- Create Certificate
- 下载证书和私钥
证书格式
- 证书:origin.crt
- 私钥:origin.key
自签名证书
生成自签名证书
bash
openssl req -x509 -nodes -days 365 -newkey rsa:2048 \
-keyout /etc/nginx/ssl/selfsigned.key \
-out /etc/nginx/ssl/selfsigned.crt生成CSR
bash
openssl req -new -newkey rsa:2048 -nodes \
-keyout /etc/nginx/ssl/example.com.key \
-out /etc/nginx/ssl/example.com.csr证书验证
查看证书信息
bash
openssl x509 -in /etc/letsencrypt/live/example.com/cert.pem -text -noout查看证书有效期
bash
openssl x509 -in /etc/letsencrypt/live/example.com/cert.pem -noout -dates验证证书链
bash
openssl s_client -connect example.com:443 -showcerts证书续期
Let's Encrypt自动续期
测试续期
bash
sudo certbot renew --dry-run手动续期
bash
sudo certbot renew自动续期
bash
sudo crontab -e添加以下内容:
0 0 * * * certbot renew --quiet证书安装
复制证书文件
bash
sudo mkdir -p /etc/nginx/ssl
sudo cp /etc/letsencrypt/live/example.com/fullchain.pem /etc/nginx/ssl/example.com.crt
sudo cp /etc/letsencrypt/live/example.com/privkey.pem /etc/nginx/ssl/example.com.key设置权限
bash
sudo chmod 644 /etc/nginx/ssl/example.com.crt
sudo chmod 600 /etc/nginx/ssl/example.com.key常见问题
DNS验证失败
原因: DNS记录未正确配置
解决: 检查DNS记录
bash
dig example.com端口被占用
原因: 80端口被占用
解决: 停止占用80端口的程序
bash
sudo netstat -tlnp | grep :80证书申请失败
原因: 域名未正确解析
解决: 检查域名解析
bash
nslookup example.com总结
SSL证书申请的关键点:
- Let's Encrypt:免费、自动化
- Cloudflare:免费、灵活
- 自签名:测试环境
- 证书续期:定期续期
- 证书验证:检查证书信息
选择合适的证书类型,为网站配置HTTPS。