环境:lamp (Ubuntu + Apache + mysql +php7)
申请免费SSL证书
去当初域名所在的服务商申请 选择免费型即可。
进入证书控制台,下载证书
申请通过颁发证书后,去下载证书。
zip解压
解压出四个文件夹和一个csr文件。 四个文件夹(Apache,IIS,Nginx,Tomcat)分别为用不同服务器框架所用的SSL证书。
把Apache文件夹中三个文件夹复制出来
安装openssl
sudo apt-get install openssl
开启ssl模块
输入 sudo a2enmod 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
新建文件夹,把证书放进去
mkdir /etc/apache2/cert
配置HTTPS(SSL)
进入/etc/apache2/ports.conf, 查看是否有
Listen 80 Listen 443
没有就添加上去
修改配置文件/etc/apache2/sites-enabled/000-default.conf
sudo vim /etc/apache2/sites-enabled/000-default.conf
添加
<VirtualHost *:443>
SSLEngine on
SSLProtocol all -SSLv2 -SSLv3
SSLCipherSuite HIGH:!RC4:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!EXP:+MEDIUM
SSLHonorCipherOrder on
SSLCertificateFile cert/xxx_public.crt
SSLCertificateKeyFile cert/xxx.key
SSLCertificateChainFile cert/xxx_chain.crt
ServerAdmin webmaster@localhost
DocumentRoot 项目地址
ServerName www.xxx.com
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined</VirtualHost>
设置http重定向至https
打开 /etc/apache2/sites-available/000-default.conf , 在 <\VirtualHost *:80><\VirtualHost> 标签内随便一个地方加入以下三行
RewriteEngine on
RewriteCond %{HTTPS} !=on
RewriteRule ^(.*) https://%{SERVER_NAME}$1 [L,R=301]
重启apache即可
sudo service apache2 restart