利用 openssl 转换证书格式

场景1:nginx 正常配置证书 ✔

  • 从阿里云申请的证书,服务器类型选择 Nginx(证书格式 pem/key),下面是利用 nginx 转发到后端 java 服务的配置:

注:如果是 windows 系统配置目录,请使用 c:/nginx 而非 c:\nginx

server {
    listen 80;
    server_name www.sqlfans.cn;
    return 301 https://www.sqlfans.cn$request_uri;
}

server {
    listen 443 ssl;
    server_name www.sqlfans.cn;

    ssl_certificate     c:/nginx/nginx/ssl/www.sqlfans.cn.pem;
    ssl_certificate_key c:/nginx/nginx/ssl/www.sqlfans.cn.key;
    ssl_session_cache shared:SSL:10m;
    ssl_session_timeout 5m;
    ssl_protocols TLSv1.2;
    ssl_ciphers HIGH:!aNULL:!MD5;
    ssl_prefer_server_ciphers on;

    location / {
        proxy_pass http://127.0.0.1:8024;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

场景2:转换为 pfx 格式以供 IIS 使用 ✔

  • 利用私钥文件(.key格式)和证书文件(.crt或.pem格式),转换为iis证书(.pfx格式)
[root@localhost ~]# ls
xxx.com.crt  xxx.com.key  xxx.com.pem

[root@localhost ~]# openssl pkcs12 -export -out xxx.com.pfx -inkey xxx.com.key -in xxx.com.crt

[root@localhost ~]# ls
xxx.com.crt  xxx.com.key  xxx.com.pem  xxx.com.pfx
  • 转换成iis可识别的fpx格式,中间证书包(通常名为 gd_bundle-g2-g1.crt)
openssl pkcs12 -export -out xxx.com.pfx -inkey xxx.com.key -in xxx.com.crt -certfile gd_bundle-g2-g1.crt

场景3:利用 openssl 将 GoDaddy 证书转换为 pfx 格式以供 IIS 使用 ✔

  • 由于购买的 GoDaddy 证书,解压针对 IIS 服务的压缩包,没有 .pfx 格式文件,参考 场景2 转换的的 pfx 文件在绑定证书的时候报错“中间证书丢失”,利用 chrome 访问 https 提示页面不安全。

  • 由于 GoDaddy R1 新根证书 未被 Windows / Chrome 原生信任库收录,而 Chrome 不会自动下载缺失交叉证书,需要强制下发完整三段证书链(站点+中间+交叉根),步骤如下:
#.原始iis压缩包文件
cd /opt/ssl
ll _.xxx.com.chained.crt
ll _.xxx.com.csr
ll _.xxx.com.key                  #.私钥
ll 92a52fca81437d14.crt           #.站点证书
ll 92a52fca81437d14.pem
ll gd_bundle_dv-r1-g2.crt.pem     #.中间证书

#.下载godaddy交叉根证书
# wget -c https://certs.godaddy.com/repository/gd_tls_root-r1-cross-g2.crt
wget -c http://iso.sqlfans.cn/nginx/gd_tls_root-r1-cross-g2.crt

#.合并完整的证书链
cat 92a52fca81437d14.crt gd_bundle_dv-r1-g2.crt.pem gd_tls_root-r1-cross-g2.crt > fullchain.crt

#.转换pfx格式
openssl pkcs12 -export -out xxx.pfx -inkey _.xxx.com.key -in fullchain.crt

场景4:利用 openssl 将 .cer 转换 .crt

  • 利用 openssl 将 .cer 转换 .crt
openssl x509 -inform PEM -in server.cer -out server.crt

附:在线转换工具

Copyright © www.sqlfans.cn 2021 - 2026 All Right Reserved更新时间: 2026-09-16 17:41:14

results matching ""

    No results matching ""