最近个人博客完成了从http到https的升级,现在写一篇文章分享一下整个的流程,也方便自己以后更换。我的环境是centos6.9,apache2.2.15。
申请SSL证书
首先要去申请SSL证书,证书有免费的也有收费的,免费的证书可以去freessl申请
打开freessl,可以看到一共有三种证书,如果你只有一个域名,可以申请第一个。如果你有其他的二级域名,要申请第二个或者第三个。多域名证书的有效期是三个月,而双域名的有效期是一年,所以到期之后记得更换。
输入自己的域名之后点击创建免费证书
验证类型选择DNS后,点击创建

确定后过一会儿就可以回到SSL 证书的页面点击验证了。然后就会给出你申请的证书
到这里证书就申请完毕了
配置SSL证书
首先连上服务器,需要开放服务器的443端口的防火墙,可以用
netstat -ntlp查看端口的状态,如果没有开放443端口,输入
/sbin/iptables -I INPUT -p tcp --dport 443 -j ACCEPT
/etc/init.d/iptables save #保存修改
service iptables restart #重启防火墙,修改生效然后进入ssl的目录下,不同的系统路径可能不一样
cd /etc/ssl/ #进入ssl目录直接用vim创建证书,里面输入的内容就是你前面申请的证书内容
vim example.com.crt #创建后里面输入的是证书的内容vim example.com.ca.crt #创建CA证书vim example.com.key #需要注意的是里面的内容要和申请的一致创建好三个证书文件之后,下一步就是打开apache的配置文件,这里要打开的是apache的ssl的配置文件
vim /etc/httpd/conf.d/ssl.conf #不同系统不同版本路径可能不一致找到虚拟主机配置,引入三个证书
<VirtualHost *:443>
DocumentRoot "/var/www/html/" #这里输入你的网站根目录
ServerName example.com #这里输入你的域名
SSLEngine on
SSLProtocol all -SSLv2
SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5
SSLCertificateFile /etc/ssl/example.com.crt #证书路径
SSLCertificateKeyFile /etc/ssl/example.com.key
SSLCACertificateFile /etc/ssl/example.com.ca.crt
</VirtualHost>保存退出后,重启apache,应该可以用https访问你的网站了。
打开web根目录的.htaccess加入下面的规则可以强制访问https,其实就是把http定向到了https
RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R,L]一台服务器配置多站点
如果你的二级域名也想用https的话,比较方便的是直接用通配符证书,可以支持你的所有二级域名,这时候只要修改一下apache的ssl配置即可。
vim /etc/httpd/conf.d/ssl/conf首先一定要加入
NameVirtualHost *:443这句在虚拟主机配置前面,我就是没有加入这句,所以一直没有成功
然后和上面的虚拟主机配置一样在加入
<VirtualHost *:443>
DocumentRoot "/var/www/html/example2/" #这里输入你的网站根目录
ServerName example2.example.com #这里输入你的域名
SSLEngine on
SSLProtocol all -SSLv2
SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5
SSLCertificateFile /etc/ssl/example.com.crt #证书路径 可以复制一份改成同样的格式域名改一下
SSLCertificateKeyFile /etc/ssl/example.com.key
SSLCACertificateFile /etc/ssl/example.com.ca.crt
</VirtualHost>重启apache之后,你的二级域名同样可以用https访问了。不同的域名也是一样,只是要重新去申请证书了。



