Apache服务器配置HTTPS详细步骤:SSL证书安装全流程

2026-07-21 12:12:48阅读 2

Apache跑了好几年,现在要加HTTPS,动哪些配置才不会把现有站点搞挂?这事儿说难不难,但顺序搞反了容易出问题。

第一步:确认mod_ssl模块已启用

Apache处理HTTPS靠的是mod_ssl模块,不是装了就自动开的。在服务器上执行httpd -M | grep ssl或者apachectl -M | grep ssl,看看输出里有没有ssl_module。如果没有,需要手动启用:CentOS下执行yum install mod_ssl,Ubuntu下执行a2enmod ssl。装完之后别急着重启,先把证书文件准备好。

第二步:放置证书文件

Apache需要三个文件:域名证书、私钥、中间证书。建议在/etc/httpd/ssl//etc/apache2/ssl/目录下集中存放。文件名最好带域名标识,比如example.com.crtexample.com.keyexample.com-chain.crt,方便后期多个站点管理。

有个细节注意一下:有些CA发的证书文件里已经包含了中间证书,这种情况下就不需要单独配置SSLCertificateChainFile指令了。你可以用文本编辑器打开证书文件,看看里面是不是有两段BEGIN CERTIFICATE,如果有就是已经合并好的。

第三步:编辑虚拟主机配置

找到你的SSL虚拟主机配置文件,通常在/etc/httpd/conf.d/ssl.conf/etc/apache2/sites-available/default-ssl.conf。核心配置项如下:

<VirtualHost *:443>    ServerName your_domain.com    DocumentRoot /var/www/html    SSLEngine on    SSLCertificateFile /etc/httpd/ssl/your_domain.crt    SSLCertificateKeyFile /etc/httpd/ssl/your_domain.key    SSLCertificateChainFile /etc/httpd/ssl/your_domain-chain.crt</VirtualHost>

如果你是在同一个Apache上跑多个HTTPS站点,记得开启SNI支持。Apache 2.2.12以上版本默认支持,配置时每个站点单独写一个VirtualHost *:443块就行。

第四步:测试与重启

配置文件改完,先做语法检查:apachectl configtesthttpd -t。输出Syntax OK才能继续。然后执行systemctl restart httpdsystemctl restart apache2重启服务。

如果重启后网站打不开,80%的概率是证书文件路径写错了,或者私钥和证书不匹配。验证匹配性的方法:openssl x509 -in your_domain.crt -modulus -noout | md5sumopenssl rsa -in your_domain.key -modulus -noout | md5sum,两个MD5值一致就说明配对了。

最后别忘了在防火墙上放行443端口,firewall-cmd --add-service=https --permanent && firewall-cmd --reload。这一步漏了的话,外面怎么都访问不了你的HTTPS站点。

电话咨询微信咨询在线咨询返回顶部
×
xycx202108

微信扫码咨询