阿里云 Ubuntu16.04 apache2 ssl证书下载与安装,必须有域名

阿里云申请免费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