上一篇
https怎么生成证书
- 行业动态
- 2025-04-28
- 4870
使用OpenSSL生成私钥和证书签名请求(CSR),通过CA机构或自签名方式
HTTPS证书生成全流程详解
理解HTTPS证书的作用
HTTPS证书(SSL/TLS证书)用于在客户端与服务器之间建立加密连接,确保数据传输的安全性,浏览器通过验证证书的有效性来确认网站身份,防止中间人攻击和数据改动。
证书生成核心步骤
生成密钥与证书签名请求(CSR)
- 私钥生成:使用OpenSSL工具生成RSA或ECDSA算法的私钥。
openssl genpkey -algorithm RSA -out private.key -pkeyopt rsa_keygen_bits:2048
- 创建CSR:基于私钥生成CSR文件,包含域名信息。
openssl req -new -key private.key -out request.csr -subj "/CN=yourdomain.com"
选择证书类型并申请
证书类型 | 特点 |
---|---|
DV SSL | 域名验证,免费(如Let’s Encrypt),仅验证域名所有权。 |
OV SSL | 企业验证,付费,需提交企业资质,验证组织真实性。 |
EV SSL | 扩展验证,付费,严格审核,浏览器地址栏显示绿色企业名称。 |
- 免费证书申请(以Let’s Encrypt为例):
certbot certonly --standalone -d yourdomain.com --email admin@example.com
- 付费证书申请:通过CA机构(如DigiCert、GlobalSign)提交CSR并完成验证。
获取证书并配置服务器
- 下载证书文件:从CA或工具(如Certbot)获取
.crt
和.ca-bundle
文件。 - 服务器配置示例:
- Nginx:
server { listen 443 ssl; ssl_certificate /path/to/fullchain.pem; ssl_certificate_key /path/to/private.key; # 其他配置... }
- Apache:
<VirtualHost :443> SSLEngine on SSLCertificateFile /path/to/cert.pem SSLCertificateKeyFile /path/to/private.key SSLCertificateChainFile /path/to/chain.pem # 其他配置... </VirtualHost>
- Nginx:
常见问题与解决方案
浏览器提示“证书无效”
- 原因:证书未绑定正确域名、过期或中间证书缺失。
- 解决:检查DNS解析、确认证书链完整(需包含中间证书)。
Let’s Encrypt证书自动续期
- 命令:
certbot renew --dry-run # 测试续订
- 自动化:将续订命令加入
cron
任务(Linux):0 0 /usr/bin/certbot renew --quiet
问题与解答栏目
问题1:HTTPS证书的有效期是多久?
- 解答:免费证书(如Let’s Encrypt)通常有效期为90天,需定期更新;付费DV/OV证书一般为1-2年,EV证书最长可达3-5年。
问题2:自签名证书与CA签发的证书有什么区别?
- 解答:
| 特性 | 自签名证书 | CA签发证书 |
|———————|————————————-|——————————–|
| 信任度 | 浏览器默认不信任,仅用于内部测试 | 受浏览器根证书计划信任 |
| 适用场景 | 本地开发、内网服务 | 公共互联网网站 |
| 验证方式 | 无第三方验证 | 需域名或企业资质验证 |
通过以上步骤,可安全生成并部署HTTPS