上一篇
https配证书
- 行业动态
- 2025-04-30
- 4356
HTTPS配置需申请可信CA证书,安装至服务器并 配置HTTPS协议,通过
HTTPS配置SSL证书详细指南
SSL证书的作用
SSL(Secure Sockets Layer)证书用于在Web服务器与浏览器之间建立加密连接,确保数据传输的安全性,HTTPS(HTTP Secure)通过SSL/TLS协议实现加密,主要功能包括:
- 数据加密:防止数据被窃取或改动。
- 身份验证:验证服务器真实性,防止钓鱼网站。
- 完整性保护:确保数据在传输过程中不被修改。
SSL证书类型
类型 | 特点 | 适用场景 |
---|---|---|
免费证书 | 由Let’s Encrypt等机构颁发,有效期3个月(需定期更新)。 | 个人站点、小型网站、测试环境。 |
DV SSL | 域名验证型,仅验证域名所有权,签发速度快。 | 普通企业官网、博客。 |
OV SSL | 组织验证型,需验证企业身份,证书中包含企业信息。 | 企业站点、需要信任背书的场景。 |
EV SSL | 扩展验证型,严格审核企业资质,浏览器地址栏显示绿色企业名称。 | 金融、电商等高安全需求场景。 |
通配符证书 | 支持同一主域名下的所有子域名(如.example.com )。 | 多子域名站点。 |
多域名证书 | 支持多个不同域名(如example.com 和test.com )。 | 拥有多个域名的企业。 |
获取SSL证书的流程
选择证书类型
根据需求选择免费或付费证书,推荐免费证书使用Let’s Encrypt。生成密钥与CSR(证书签名请求)
- 使用OpenSSL生成私钥和CSR:
openssl genrsa -out private.key 2048 # 生成私钥 openssl req -new -key private.key -out request.csr -subj "/C=CN/ST=Beijing/L=Beijing/O=Example/OU=IT/CN=www.example.com" # 生成CSR
CN
字段需填写域名,O
为企业名称(OV/EV证书必填)。
- 使用OpenSSL生成私钥和CSR:
提交CSR并获取证书
- 免费证书(Let’s Encrypt):
使用Certbot自动申请:certbot certonly --standalone -d www.example.com -d example.com
- 付费证书:登录证书厂商控制台(如阿里云、酷盾安全),提交CSR并完成域名验证。
- 免费证书(Let’s Encrypt):
安装证书到服务器
Apache服务器配置
- 将证书文件(
.crt
)和私钥(.key
)上传到服务器。 - 修改Apache配置文件(如
/etc/httpd/conf/httpd.conf
):<VirtualHost :443> ServerName www.example.com SSLEngine on SSLCertificateFile /path/to/fullchain.pem # Let's Encrypt的中间证书+域名证书 SSLCertificateKeyFile /path/to/private.key SSLCertificateChainFile /path/to/chain.pem # 可选,部分证书需要 </VirtualHost>
- 重启Apache:
systemctl restart httpd
Nginx服务器配置
- 修改Nginx配置文件(如
/etc/nginx/sites-available/default
):server { listen 443 ssl; server_name www.example.com; ssl_certificate /path/to/fullchain.pem; ssl_certificate_key /path/to/private.key; ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers HIGH:!aNULL:!MD5; }
- 重启Nginx:
systemctl restart nginx
验证HTTPS配置
- 浏览器检查:访问
https://www.example.com
,确认地址栏显示“锁”图标。 - 在线工具检测:使用SSL Labs检查评分和配置破绽。
- 强制HTTP重定向HTTPS:
- Apache:在配置文件中添加:
<VirtualHost :80> ServerName www.example.com Redirect permanent / https://www.example.com/ </VirtualHost>
- Nginx:在配置文件中添加:
server { listen 80; server_name www.example.com; return 301 https://$host$request_uri; }
- Apache:在配置文件中添加:
证书维护与更新
- Let’s Encrypt证书:每3个月需手动或自动续期(Certbot支持自动续期)。
- 付费证书:到期前厂商会发送提醒,按流程重新申请或续费。
- 监控工具:使用
cron
定时任务检查证书有效期(例如openssl x509 -noout -dates -in certificate.crt
)。
相关问题与解答
问题1:Let’s Encrypt证书到期前如何自动续期?
解答:
使用Certbot的自动续期功能:
- 安装时启用
--renew
参数:certbot certonly --standalone --renew-by-default -d www.example.com
- 添加
cron
任务(每天检查):sudo crontab -e # 添加以下行 0 0 /usr/bin/certbot renew --quiet --no-self-upgrade
问题2:如果网站有多个子域名,如何选择证书?
解答:
- 单域名证书:仅支持单个主域名(如
www.example.com
),子域名需单独申请。 - 通配符证书:支持所有子域名(如
.example.com
),但需验证主域名。 - 多域名证书(SAN):可指定多个不同域名(如
example.com
和test.com
),适合多