配置文件
项目 | 路径 |
---|---|
apache | /etc/httpd/conf/httpd/httpd.conf |
SSL | /etc/httpd/conf.d/ssl.conf |
网站证书 | /etc/pki/tls/certs/certificate.crt |
SSL私钥 | /etc/pki/tls/private/private.key |
发证方证书 | /etc/pki/tls/certs/ca_bundle.crt |
配置要点
网站启用SSL加密费了好大劲,看了无数的网上坑爹教程,终于配置成功了,其实关键点只有以下几点:
- httpd文件中应同时监听80和443端口,如果不监听80端口,那使用http协议访问网站的用户就会被拒绝访问。
- 要同时开启80端口的虚拟主机和443端口的虚拟主机。
- 网上一些教程说要开启ssl模块和网址跳转模块,类似下面这种:
LoadModule ssl_module modules/mod_ssl.so
LoadModule rewrite_module modules/mod_rewrite.so
后来发现apache把所有的引用文件都放在/etc/httpd/modules/下面,里面包括mod_ssl_so文件和mod_rewrite.so文件,所以只需要配置一条就够了。
Include conf.modules.d/*.conf
另外,Apache有可能并没有安装mod_ssl模块,只需要sudo dnf install mod_ssl,就可以使用了。在配置Apache发现错误无法启动时,要多使用apachectl configtest命令,可以查看详细的错误原因,相应调整配置。所有配置都搞好了别忘了执行systemctl httpd enable命令,使apache服务开机自动运行。
其它配置都和网上说的差不多,直接贴配置了
<VirtualHost *:80>
ServerName www.mysite.com
<Directory /var/www/html/>
AllowOverride All
</Directory>
ServerAdmin admin@mysite.com
DocumentRoot /var/www/html/
RewriteEngine on
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
</VirtualHost>
<VirtualHost *:443>
SSLEngine on
SSLCertificateFile /etc/pki/tls/certs/certificate.crt
SSLCertificateKeyFile /etc/pki/tls/private/private.key
SSLCACertificateFile /etc/pki/tls/certs/ca_bundle.crt
ServerName www.mysite.com
<Directory /var/www/html/>
AllowOverride All
</Directory>
ServerAdmin admin@mysite.com
DocumentRoot /var/www/html/
</VirtualHost>