CentOS7.5给apache2.4打上mod_ssl模块,并开启https的443端口,以及后续可能会出现的apache重启错误

时间:2024-03-22 21:58:24

下载到apache的ssl证书后,如何使用,ssl证书放在那里,其实很简单和apache的httpd.conf配置文件一样。

首先打开apache的配置文件默认,确认是否安装mod_ssl.so模块,由于各个版本的apache配置略有不同。

/etc/httpd/conf
有些朋友打开httpd.conf文件,里边就没有下边这句,直接懵逼了。如果有就可以直接使用,没有就装。

LoadModule ssl_module modules/mod_ssl.so
Include conf.d/*.conf

查看是否有上边两句话,有的话把注释#删除了。有没有主要看大家前期的阿帕奇是如何安装的。默认的apache安装是不安装ssl的,没有的话需要我们通过动态编译的方式加载,你也可以重新安装。

网上找了一圈发现一个最简单的安装方法直接使用
YUM方式安装mod_ssl.so模块
yum -y install mod_ssl

安装完之后/etc/httpd/conf.d目录下会出现一个ssl.conf文件(httpd.conf里要有这句话Include conf.d/*.conf)。这个文件是重点。

编辑这个ssl.conf文件中的里面的内容,配置域名路径等,最主要的配置是下面三个证书文件的路径替换为自己申请的证书,其他配置可以自行调节,浏览器地址栏的小锁就变成安全的了。使用默认的证书是不安全的https连接。

<VirtualHost default:443>
DocumentRoot “/var/www/html” #网站存放路径
ServerName www.example.com:443 #域名信息
#以下是3个证书路径
SSLCertificateFile /etc/pki/tls/certs/localhost.crt
SSLCertificateKeyFile /etc/pki/tls/private/localhost.key
SSLCertificateChainFile /etc/pki/tls/certs/server-chain.crt
</VirtualHost>

**

以上就是本文全部内容了。

**
但是后来发现用了几天后网站打不开,apache重启不了,后有了以下内容:
关于Apache重启后出现以下错误的问题。
# service httpd restart
Redirecting to /bin/systemctl restart httpd.service
Job for httpd.service failed because the control process exited with error code. See “systemctl status httpd.service” and “journalctl -xe” for details.

查看了/etc/httpd/log/error_log发现如下错误。
看到了一些443的错误,判断应该是和ssl.conf有关,但是之前配置好以后是可以正常使用的,是过了大概4,5天时间后台打不开才发现错误的,查看了ssl.conf也没改变,不知道为啥会重启不了apache。然后百度了一些资料,说有可能是443端口监听冲突,但是发现httpd.conf只Listen 80。ssl.conf里面只有Listen 443 https,也没有重复Listen,后来不知道怎么脑子一抽,把ssl.conf里面的Listen 443 https这一行给注释掉了。然后重启apache,竟然可以启动了。

重启不了apache后查看/etc/httpd/log/error_log的内容如下:

[Mon Feb 25 10:35:45.930231 2019] [suexec:notice] [pid 8462] AH01232: suEXEC mechanism enabled (wrapper: /usr/sbin/suexec)
[Mon Feb 25 10:35:45.931024 2019] [ssl:warn] [pid 8462] AH02292: Init: Name-based SSL virtual hosts only work for clients with TLS server name indication support (RFC 4366)
[Mon Feb 25 10:35:45.944610 2019] [so:warn] [pid 8462] AH01574: module rewrite_module is already loaded, skipping
AH00557: httpd: apr_sockaddr_info_get() failed for ecs-1626.novalocal
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
[Mon Feb 25 10:35:45.952567 2019] [core:crit] [pid 8462] (22)Invalid argument: AH00069: make_sock: for address [::]:443, apr_socket_opt_set: (IPV6_V6ONLY)
(98)Address already in use: AH00072: make_sock: could not bind to address [::]:443
(98)Address already in use: AH00072: make_sock: could not bind to address 0.0.0.0:443
[Mon Feb 25 10:35:45.952602 2019] [mpm_prefork:alert] [pid 8462] no listening sockets available, shutting down
[Mon Feb 25 10:35:45.952604 2019] [:emerg] [pid 8462] AH00019: Unable to open logs, exiting

注释掉ssl.conf里面的Listen 443 https后可以启动了。
CentOS7.5给apache2.4打上mod_ssl模块,并开启https的443端口,以及后续可能会出现的apache重启错误