上一篇
https如何申请ssl证书
- 行业动态
- 2025-05-01
- 3599
申请SSL证书需生成密钥对,提交CSR至CA机构,完成域名验证
SSL证书基础概念
SSL(Secure Sockets Layer)证书是用于在Web服务器与浏览器之间建立加密链接的数字证书,主要作用包括:
- 数据加密:防止信息被窃取或改动
- 身份验证:证明网站真实身份
- 提升信任:浏览器地址栏显示安全锁标志
SSL证书类型选择
证书类型 | 验证等级 | 适用场景 | 特点 |
---|---|---|---|
DV SSL(域名验证) | 仅验证域名所有权 | 个人博客/小型网站 | 10分钟-数小时签发 |
OV SSL(组织验证) | 验证企业身份 | 企业官网/电商平台 | 1-3工作日签发,显示企业信息 |
EV SSL(扩展验证) | 严格企业验证 | 金融/政务网站 | 1-5工作日签发,绿色地址栏 |
申请流程详解
生成密钥与证书签名请求(CSR)
# 生成私钥(2048位) openssl genrsa -out private.key 2048 # 生成CSR(需填写机构信息) openssl req -new -key private.key -out request.csr
选择证书颁发机构(CA)
CA类型 | 代表机构 | 特点 |
---|---|---|
免费 | Let’s Encrypt | 90天有效期,自动化续签 |
付费 | DigiCert/GlobalSign | 最长3年有效期,支持OCSP |
域名验证方式
- DNS验证:添加TXT记录(例:_acme-challenge.example.com → 验证值)
- 文件验证:上传指定文件到网站根目录
- 邮箱验证:点击CA发送的验证邮件链接
安装证书
Apache示例
<VirtualHost :443> SSLEngine on SSLCertificateFile /path/to/cert.pem SSLCertificateKeyFile /path/to/private.key SSLCertificateChainFile /path/to/chain.pem ServerName example.com </VirtualHost>
Nginx示例
server { listen 443 ssl; ssl_certificate /path/to/cert.pem; ssl_certificate_key /path/to/private.key; ssl_trusted_certificate /path/to/chain.pem; }
常见问题处理
浏览器仍显示不安全
- 检查证书链是否完整
- 清除浏览器缓存
- 确认中间证书已安装
证书过期处理
- 提前60天续订(Let’s Encrypt需重新签发)
- 自动续期脚本示例(Linux Crontab):
0 0,12 /usr/bin/certbot renew --quiet
相关问题与解答
Q1:SSL和TLS有什么区别?
A1:TLS(Transport Layer Security)是SSL的升级版,当前通用版本为TLS 1.2/1.3,SSL证书实际指支持TLS协议的数字证书,浏览器已弃用SSL协议标识。
Q2:如何实现全站HTTPS强制跳转?
A2:通过服务器配置301重定向:
- Apache:
Redirect permanent / https://example.com
- Nginx:
return 301 https://$host$request_uri;