购买了一年的DV型SSL,赶紧部署!
首先我的Apache是源码编译的。默认已经配置有了ssl
如果您的源码编译没有加上该模块。请重新编译./configure –prefix=/usr/local/apache –enable-ssl
如果是yum安装,请yum install mod_ssl
A.开启相关参数,编辑 httpd.conf
1. Apache 部署SSL证书 (只能应用一个证书, 如果多个不同站点都需要安装不同的证书,请使用nginx)
a. 查看apache是否开启ssl (特别注意要在apache配置文件中添加Listen 443否则没有443端口监听)
打开 apache安装目录/conf/httpd.conf 文件,找到 里面两行
#LoadModule ssl_module modules/mod_ssl.so
将行首的#去掉,保存文件
执行命令: apache安装目录/bin/httpd -M | grep ssl_module , 出现图下结果说明apache已经支持ssl, 否则请先开启apache的ssl模块
B.编辑/extra/httpd-ssl.conf
1.找到与之对应的值,根据您的实际情况配置+
将购买的证书上传到服务器的下列路径中
# cp *.crt /etc/pki/tls/certs/
# cp *.key /etc/pki/tls/private/
<VirtualHost www.domain.com:443>
DocumentRoot "/var/www/html"
ServerName www.domain.com
SSLEngine on
SSLCertificateFile 证书文件路径/_www.domain.com.cer
SSLCertificateKeyFile 证书文件路径/_www.domain.com.key
SSLCertificateChainFile 证书文件路径/_www.domain.com_ca.crt
</VirtualHost>
#注意:一定要添加下列内容,让访问者有权限访问!!!!
<Directory "/您网站的绝对路径">
SetOutputFilter DEFLATE
Options FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
DirectoryIndex index.html index.php
</Directory>
最后保存。
C.配置防火墙
这个网上都没人说过!!!!!!!!!坑爹得要死
一定要放行443端口!!
[root@tp ~]# iptables -A INPUT -p tcp --dport 443 -j ACCEPT
service iptables restart
D.强制使用HTTPS
如果需要整站跳转,则在网站的配置文件的<Directory>标签内,键入以下内容:
RewriteEngine on
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^(.*)?$ https://%{SERVER_NAME}/$1 [L,R]
如果对某个目录做https强制跳转,则复制以下代码:
RewriteEngine on
RewriteBase /yourfolder
RewriteCond %{SERVER_PORT} !^443$
#RewriteRule ^(.*)?$ https://%{SERVER_NAME}/$1 [L,R]
RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R]
如果只需要对某个网页进行https跳转,可以使用redirect 301来做跳转!
redirect 301 /你的网页 https://你的主机+网页
重启Apache服务,即可看到效果
事后:虽然过程很简单,但是也让我花了几个小时。原因是各种古怪的错误。老师也讲过怎么配置。但是印象模糊。。。都还给老师了,况且网上的教程参差不齐。各种大坑!!!!