You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

离线环境下如何将CA颁发的服务器证书导出为XAMPP SSL配置可用的格式

离线环境下如何将CA颁发的服务器证书导出为XAMPP SSL配置可用的格式

嘿,伙计,针对你这个离线环境下的证书转换问题,我给你一步步捋清楚怎么做——完全不用依赖在线工具,全在本地搞定:

一、先准备好OpenSSL工具(离线可用)

因为你是离线服务器,得先在一台联网机器上下载Win64OpenSSL的安装包(选适配Windows Server 2019的版本),把安装包拷贝到你的离线服务器上完成安装。安装后记得找到它的bin目录,比如默认路径是C:\Program Files\OpenSSL-Win64\bin,后面操作都要用到这个路径。

二、从PFX文件提取私钥(.key)

你已经导出了带私钥的PFX文件,现在要把私钥单独提出来:

  1. 打开管理员模式的命令提示符,切换到OpenSSL的bin目录:
    cd "C:\Program Files\OpenSSL-Win64\bin"
    
  2. 执行提取私钥的命令(把yourcert.pfx换成你实际的PFX文件名):
    openssl pkcs12 -in yourcert.pfx -nocerts -out server.key
    
    • 执行时会先让你输入PFX文件的导出密码,接着会提示你设置一个私钥的保护密码(这个密码是用来加密私钥的)。
  3. (可选但推荐)如果不想每次启动Apache都输密码,去掉私钥的密码:
    openssl rsa -in server.key -out server-no-pass.key
    
    之后XAMPP用这个server-no-pass.key就行。

三、提取证书文件(.crt)

同样在OpenSSL的bin目录下,执行命令提取证书:

openssl pkcs12 -in yourcert.pfx -clcerts -nokeys -out server.crt

输入PFX的导出密码,就能得到XAMPP可用的.crt证书文件了。

四、配置XAMPP的SSL

  1. 把生成的server.crtserver-no-pass.key(或者带密码的server.key)拷贝到XAMPP的证书目录,比如xampp\apache\conf\ssl.crtxampp\apache\conf\ssl.key
  2. 打开XAMPP的Apache SSL配置文件:xampp\apache\conf\extra\httpd-ssl.conf,找到下面两行并修改为你的证书路径:
    SSLCertificateFile "C:/xampp/apache/conf/ssl.crt/server.crt"
    SSLCertificateKeyFile "C:/xampp/apache/conf/ssl.key/server-no-pass.key"
    
  3. (如果有中间CA证书)如果你的CA有中间证书,也要把中间证书导出为.crt格式,然后添加一行:
    SSLCertificateChainFile "C:/xampp/apache/conf/ssl.crt/ca-intermediate.crt"
    
  4. 重启XAMPP的Apache服务,SSL应该就能正常工作了。

备选方案:生成自签名证书(离线环境也能用)

如果觉得CA证书转换麻烦,也可以直接在离线服务器上生成自签名证书,步骤更简单:
在OpenSSL的bin目录执行:

openssl req -x509 -newkey rsa:4096 -keyout server.key -out server.crt -days 3650 -nodes

按照提示输入服务器的信息(比如Common Name填你的服务器域名或IP),生成的server.keyserver.crt直接拿去配置XAMPP就行。不过自签名证书在客户端访问时会弹出安全警告,如果你是内部离线环境,可以让客户端把这个证书加入信任列表,就能消除警告了。

备注:内容来源于stack exchange,提问作者JukEboX

火山引擎 最新活动