为 XAMPP Apache 安装 SSL 证书

Posted

技术标签:

【中文标题】为 XAMPP Apache 安装 SSL 证书【英文标题】:Install SSL Certificates for XAMPP Apache 【发布时间】:2014-06-26 12:10:36 【问题描述】:

我使用openssl CLI 生成了server.key,然后从中生成了server.csr。然后我向我的公司提交了server.csr(这都是内部的),他们给了我一个文本文件,我将其重命名为server.crt

我按照本指南为 XAMPP 的 Apache 安装 SSL 证书

https://knowledge.verisign.com/support/ssl-certificates-support/index?page=content&actp=CROSSLINK&id=AR193

基本上我编辑了httpd-ssl.conf 文件如下:

SSLCertificateFile "conf/ssl.crt/server.crt"

SSLCertificateKeyFile "conf/ssl.key/server.key"

SSLCACertificatePath "conf/ssl.crt/"
SSLCACertificateFile "conf/ssl.crt/server.crt"

当我重新启动我的 Apache 服务器时,它失败并出现错误:

[Thu May 08 14:14:48.014710 2014] [ssl:warn] [pid 1924:tid 272] AH01906: RSA server certificate is a CA certificate (BasicConstraints: CA == TRUE !?)
[Thu May 08 14:14:48.016664 2014] [ssl:warn] [pid 1924:tid 272] AH01907: RSA server certificate is not a leaf certificate (BasicConstraints: pathlen == 2 > 0 !?)
[Thu May 08 14:14:48.016664 2014] [ssl:warn] [pid 1924:tid 272] AH01909: RSA certificate configured for www.myservername.com:443 does NOT include an ID which matches the server name
[Thu May 08 14:14:48.016664 2014] [ssl:emerg] [pid 1924:tid 272] AH02238: Unable to configure RSA server private key
[Thu May 08 14:14:48.016664 2014] [ssl:emerg] [pid 1924:tid 272] SSL Library Error: error:0B080074:x509 certificate routines:X509_check_private_key:key values mismatch
[Thu May 08 14:14:48.016664 2014] [ssl:emerg] [pid 1924:tid 272] AH02311: Fatal error initialising mod_ssl, exiting. See C:/xampp/apache/logs/error.log for more information

有人知道为什么吗?如何解决这个问题?

这是我的系统信息

Windows NT LGLAC046 6.1 build 7600 (Windows Server 2008 R2 Enterprise Edition) i586 

Apache/2.4.4 (Win32) OpenSSL/0.9.8y php/5.4.19 

OPENSSL_CONF    C:/xampp/apache/bin/openssl.cnf 

SSL Version     OpenSSL/0.9.8y 

【问题讨论】:

这个问题属于 Stack Exchange 网络中的另一个站点,因为它与编程无关。也许是服务器故障的超级用户。 【参考方案1】:

我使用 openssl CLI 生成了 server.csr,然后从中生成了 server.key 你应该先生成一个私钥:

openssl genrsa -des3 -out server.key 1024

然后生成一个csr:

openssl req -new -key server.key -out server.csr

如果您要申请新证书,则将 CSR 发送给 CA。 听起来您拥有的是 CA 证书,而不是服务器证书。

【讨论】:

我在流程上进行了编辑。你说得对。那么 httpd-ssl 中的 CA 证书的配置不一样吗? CA 证书是用来签署其他证书的,它不能用作服务器证书。听起来你的服务器证书和 CA-bundle 是同一个文件。它们不应该是. SSLCACertificateFile "conf/ssl.crt/server.crt" 应该是您的 CA 捆绑包,任何签署您的证书的人都应该提供。在您遵循的说明中,这是中间.crt 文件。您的服务器证书 - SSLCertificateFile "conf/ssl.crt/server.crt" 应该是您收到的 PEM 编码文件。它应该有一个结构“-----BEGIN CERTIFICATE-----[encoded data] -----END CERTIFICATE-----” 那么你建议我改变什么?

以上是关于为 XAMPP Apache 安装 SSL 证书的主要内容,如果未能解决你的问题,请参考以下文章

phpstudy如何安装景安ssl证书 window下apache服务器网站https访问

XAMPP Apache关于https配置问题

安装好的SSL证书无效怎么办?

Ubuntu 16.04配置SSL免费证书

在 xampp mac 上设置 SSL 证书

在Apache服务器上安装SSL证书