阿里云申请免费SSL证书并下载(包含xxx.key|xxx._root_bundle.crt|xxx._public.crt三个文件)
用https是自己的网站收到保护,不易被攻克,所以保护自己的网站,有必要配置https协议
第一步:
检查是否配置openssl
sudo a2enmod ssl
如果是:
Considering dependency setenvif for ssl:
Module setenvif already enabled
Considering dependency mime for ssl:
Module mime already enabled
Considering dependency socache_shmcb for ssl:
Module socache_shmcb already enabled
Module ssl already enabled
这样的话,就无需再配置了。
如果不是进行以下操作
sudo apt-get install openssl 安装
sudo a2enmod ssl 开启ssl
无效的话输入
sudo ln -s /etc/apache2/mods-available/ssl.load /etc/apache2/mods-enabled/ssl.load
sudo ln -s /etc/apache2/mods-available/ssl.conf /etc/apache2/mods-enabled/ssl.conf
第二步:
查看/etc/apache2/ports.conf是否有端口号
Listen 80
Listen 443
在etc/apache2的目录下创建一个cert目录
里面放入之前下载好的ssl证书,把crt后缀改成pem后缀,a.key|a_chain.pem|a_public.pem
第三步:
在etc/apache2/sites-enabled/default-ssl.conf 文件里改配置
写入以下内容在对应的位置:
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html/wedding/public #网站入口目录
# Enable/Disable SSL for this virtual host.
SSLEngine on
# SSLCertificateFile directive is needed.
SSLCertificateFile /etc/apache2/cert/a_public.pem
SSLCertificateKeyFile /etc/apache2/cert/a.key
# certificate for convinience.
第四步:
在/etc/apache2/mods-enabled/ssl.conf修改以下内容在对应的位置
# Enable only secure ciphers:
SSLCipherSuite HIGH:!RC4:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!EXP:+MEDIUM
# Default: Off
SSLHonorCipherOrder on
# SSL v2 is no longer supported
SSLProtocol all -SSLv2 -SSLv3
第五步:
整理完上面几步后重启apache
sudo /etc/init.d/apache2 restart
第六步:
测试:https://www.wplhc.com
第七步:
如果想把http强制转换成https进行以下操作
1.启动重定向
sudo a2enmod rewrite
2.在/etc/apache2/sites-enabled/000-default.conf文件下写入以下内容(必须写在<VirtualHost *:80></VirtualHost>这个范围里)
RewriteEngine on
RewriteCond %{HTTPS} !=on
RewriteRule ^(.*) https://%{SERVER_NAME}$1 [L,R=301]
重启apache: sudo /etc/init.d/apache2 restart
一切ok