首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >mod24_ssl不会读取针对openssl验证的证书。

mod24_ssl不会读取针对openssl验证的证书。
EN

Stack Overflow用户
提问于 2016-05-18 05:46:35
回答 1查看 2.1K关注 0票数 1

因此,我尝试在EC2服务器上启动apache时遇到了问题。

规格:

代码语言:javascript
复制
OS: Amazon Linux AMI r2016.03
httpd24.x86_  64 2.4.18-1.64.amzn1
mod24_ssl.x86_64 2.4.18-1.64.amzn1

Apache配置:

代码语言:javascript
复制
<VirtualHost *:443>
    DocumentRoot            /var/www/zxurian.com/html/
    ServerAdmin             root@localhost.com
    ServerName              zxurian.com

    DirectoryIndex          index.php

    SSLEngine               on
    SSLProtocol             all -SSLv2 -SSLv3 -TLSv1
    SSLCipherSuite          "AES256+EECDH:AES256+EDH"
    SSLHonorCipherOrder     on
    SSLCertificateFile      /etc/httpd/ssl/certificate.crt
    SSLCertificateChainFile /etc/httpd/ssl/certificate.cc-bundle
    SSLCertificateKeyFile   /etc/httpd/ssl/certificate.key

    Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains"
    Header always append X-Frame-Options SAMEORIGIN

    <Directory "/var/www/zxurian.com">
            Require all granted
            AllowOverride All
    </Directory>
    <FilesMatch "^\.">
            Order Allow,Deny
            Deny from All
    </FilesMatch>
    <DirectoryMatch "^\.|\/\.">
            Order Deny,Allow
            Deny from All
    </DirectoryMatch>
</VirtualHost>

我复制了一个私钥&购买的证书到服务器上使用。运行openssl x509 -noout -text -in certificate.crt向我显示证书信息。运行openssl rsa -in certificate.key -check会给我一个RSA key ok。然而,当我尝试启动apache时,我得到了以下错误:

代码语言:javascript
复制
[Tue May 17 21:07:12.592129 2016] [ssl:emerg] [pid 8896] AH02572: Failed to configure at least one certificate and key for hub.tantor.com:443
[Tue May 17 21:07:12.592145 2016] [ssl:emerg] [pid 8896] SSL Library Error: error:0906D06C:PEM routines:PEM_read_bio:no start line (Expecting: DH PARAMETERS) -- Bad file contents or format - or even just a forgotten SSLCertificateKeyFile?
[Tue May 17 21:07:12.592151 2016] [ssl:emerg] [pid 8896] SSL Library Error: error:0906D06C:PEM routines:PEM_read_bio:no start line (Expecting: EC PARAMETERS) -- Bad file contents or format - or even just a forgotten SSLCertificateKeyFile?
[Tue May 17 21:07:12.592158 2016] [ssl:emerg] [pid 8896] SSL Library Error: error:140A80B1:SSL routines:SSL_CTX_check_private_key:no certificate assigned

在这一点上,我已经没有想法了。我已经验证了该文件没有多余的行尾。文件上的vi -b不会显示文件中的任何额外信息(例如,没有^M或windows行结尾)。它的设置与我的其他运行良好的EC2服务器完全相同。

还有谁还有什么我可以检查的吗?

按请求添加:

代码语言:javascript
复制
[zxurian@ip-10-0-200-22 ssl]$ egrep 'BEGIN|END' certificate.crt
-----BEGIN CERTIFICATE-----
-----END CERTIFICATE-----
[zxurian@ip-10-0-200-22 ssl]$ egrep 'BEGIN|END' certificate.key
-----BEGIN PRIVATE KEY-----
-----END PRIVATE KEY-----
EN

回答 1

Stack Overflow用户

发布于 2018-06-08 08:21:55

首先,提示:您不能再只依赖您的VirtualHost定义了。您必须引用conf.d/ssl.conf中的有效证书/密钥对,如下所示(位置适用于我的Fedora系统):

SSLCertificateFile /etc/pki/tls/certs/localhost.crt

SSLCertificateKeyFile /etc/pki/tls/私有/本地主机.pem

我的是一个自签名证书,从httpd-2.2/openssl-1.0.2h继承而来。证书为ascii PEM格式。密钥已转换为RSA明文副本,因此启动httpd时不需要密码。(在此之前,请仔细评估您的环境)。证书是为什么制作的似乎并不重要,因为它仍然是在VirtualHost部分中定义的证书,将呈现给客户端。对我来说,这些证书(从httpd-2.2继续)是PEM的缩写形式,而相应的密钥也是RSA明文拷贝的形式。当然,您必须加载mod_ssl.so,但是如果您已经在httpd-2.2中工作,那么您已经这样做了。需要说明的是:我的系统中没有任何dhparams.pem文件(在我的例子中,这只是另一个错误的线索)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37286747

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档