apache配置https,ssl.conf 配置完后重启失败

申请并下载ssl证书配置到apache之后,apache启动失败

本文记录一下遇到的坑,并不是技术问题。

  • 前言
  • 坑
  • 解决

前言

开发微信小程序 需要用https,所以去申请了一个免费得ssl证书。本人是在七牛申请的,其他阿里云 、腾讯云等也有地方申请免费证书。申请很快,几分钟-几十分钟搞定。下载的时候 ,提示对应的版本。有nginx,apache,tomcat和SLB等版本。之前一直是配置nginx,下载nginx版本,所以没遇到问题。这次服务器用了apache,下载了apache版本。里面有三个文件,分别是域名.key,域名.cer,域名.crt。

坑

照着教程,网上说的,加载了openssl和mod_ssl。然后可以访问https,但是提示证书无效。然后再ssl.conf里修改
|#SSLCertificateFile /etc/pki/tls/certs/localhost.crt |
|#SSLCertificateKeyFile /etc/pki/tls/private/localhost.key |
|#SSLCertificateChainFile /etc/pki/tls/certs/server-chain.crt|
这三处,把文件指定到下载下来的三个。结果重启不起来了。
- apache2.4.6默认前面两个是打开的。也就是说只用了前面两个。
试了用apache下载下来,三个全改还是改两个,都不行。
重启apache就提示如下
[root]# service httpd restart
Redirecting to /bin/systemctl restart httpd.service
Job for httpd.service failed. See ‘systemctl status httpd.service’ and ‘journalctl -xn’ for details.
查看这个状态,里面提示如下
AH00558: httpd: Could not reliably determine the server’s fully qualified domain name, using 127.0.0.1. Set the ‘ServerName’ directive globally to suppress this message
然后httpd -t查看的错误,也是这个。
其实这个错误只要在httpd.conf 配置ServerName localhost:443;
就能解决。但这并不是重启失败的根本原因。
最后终于在ssl_error_log文件发现了蛛丝马迹,提示如下
SSL Library Error: error:0B080074:x509 certificate routines:X509_check_private_key:key values mismatch
这意思是 证书的值不匹配。简单的来说,我们的下载的证书不对。

解决

我是回去下载了nginx版本的证书。然后nginx里面是只有两个文件的。分别是 域名.crt和 域名.key。我把这两个分别配置在
|#SSLCertificateFile /etc/pki/tls/certs/localhost.crt |
|#SSLCertificateKeyFile /etc/pki/tls/private/localhost.key |
这两个里,重启成功了。具体原因是怎么回事,还是没弄清楚。估计是版本问题吧。反正解决是这么解决了。想着以后就直接下nginx版本就行了。如果要指定项目https的话可以再配置VirtualHost,这里配置是全部都会走。

你可能感兴趣的:(apache配置学习)