当前位置:首页 > 行业动态 > 正文

https证书生成

HTTPS证书通过CSR申请,经 CA验证后签发,含公钥及链,配置服务器

HTTPS证书生成全流程详解

准备工作

  1. 域名所有权验证
    需通过DNS解析、文件上传或邮箱验证等方式证明你对域名的控制权。
  2. 选择证书类型
    • 免费证书:Let’s Encrypt(最常用)、ZeroSSL
    • 付费证书:DigiCert、GlobalSign、阿里云等
    • 自签名证书:仅用于本地测试,浏览器会提示不安全。

生成证书步骤(以Let’s Encrypt为例)

  1. 安装Certbot工具

    # Ubuntu/Debian系统
    sudo apt update && sudo apt install certbot python3-certbot-nginx
  2. 生成证书并自动配置Nginx

    https证书生成  第1张

    sudo certbot --nginx -d example.com -d www.example.com
  3. 手动生成证书(通用方法)

    • 生成私钥
      openssl genpkey -algorithm RSA -out privkey.pem -pkeyopt rsa_keygen_bits:2048
    • 生成CSR(证书签名请求)
      openssl req -new -key privkey.pem -out cert.csr -subj "/CN=example.com/O=Example Org"
    • 提交CSR到CA
      通过CA官网或API上传cert.csr,下载颁发的cert.pem

服务器配置示例(Nginx)

server {
    listen 443 ssl;
    server_name example.com www.example.com;
    ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
    # 强制HSTS(提升安全性)
    add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
}

验证证书是否生效

  1. 浏览器检查:访问https://example.com,查看地址栏是否显示绿色锁。
  2. 命令行检测
    curl -v https://example.com

    输出应包含SSL handshake has read XXX bytes且无错误。


常见问题与解决方案

问题 原因 解决方案
浏览器提示“不安全” 自签名证书未被信任 / 证书已过期 使用受信任的CA签发证书 / 续订证书
证书申请失败 DNS解析未生效 / CSR格式错误 检查域名解析记录 / 重新生成CSR
网站部分内容仍加载HTTP 服务器未强制重定向 配置301重定向(如return 301 https://$host$request_uri;

相关问题与解答

问题1:自签名证书可以用于生产环境吗?

:不建议,自签名证书不会被浏览器或操作系统默认信任,用户访问时会收到安全警告,影响可信度,仅适合本地开发或测试环境。

问题2:什么是证书链(Certificate Chain)?

:证书链是CA签发证书的层级结构。

  1. 根证书(Root CA)
  2. 中间证书(Intermediate CA)
  3. 服务器证书(End-entity Cert)
    浏览器通过验证链条中所有证书的签名,确保服务器证书
0