apache http自动跳转https_怎么给网站开启https协议?Apache2下SSL证书安装配置方法...
本文原创,未经允许,严禁装载刚做本站的时候,我也不知道为什么要开启https协议,只是发现有很多网站都是https。当用Chrome浏览器打开本社区网站的时候,发现现实”不安全”,这对于有强迫症的我来说,是不能忍的,于是申请了免费的证书,花了一个多小时才搞定。开启https协议本身不难,但是内容很繁琐。https具有加密传输通道,有效保障隐私数据密文传输,截取也无法解密。HTTP明文传输,没有SS
本文原创,未经允许,严禁装载
刚做本站的时候,我也不知道为什么要开启https协议,只是发现有很多网站都是https。当用Chrome浏览器打开本社区网站的时候,发现现实”不安全”,这对于有强迫症的我来说,是不能忍的,于是申请了免费的证书,花了一个多小时才搞定。开启https协议本身不难,但是内容很繁琐。
https具有加密传输通道,有效保障隐私数据密文传输,截取也无法解密。HTTP明文传输,没有SSL加密通道,任何人都可以轻松截取或篡改机密数据。
好了废话不多说,首先,需要申请证书,我用的是亚洲诚信(https://www.trustasia.com/)的免费证书,至于证书申请流程可以看看这里:https://www.trustasia.com/doc/how-to-get-digital-certificates,如果你已经拥有了证书,请跳过这一步。
有与本站用的是apache2,apache2服务器需要用到for Apache.zip的文件以及自主生成的私钥.key文件(申请证书过程中创建CSR时生成),具体文件见下图:
将SSL证书上传至apache2的目录下,记录一下证书的绝对地址,方便等下使用。
上传好之后,我们需要为apache服务器添加ssl模块支持,命令如下:
sudo a2enmod ssl
然后进入apache2的配置文件目录/etc/apache2/sites-available,找到对应的配置
文件,默认为default-ssl.conf(根据实际环境),找到VirtualHost *:443的配置,并参考如下配置(修改或增加):
<VirtualHost *:443>
DocumentRoot 网站根目录
SSLEngine on
SSLCertificateFile /etc/ssl/certs/frostless.net.crt
SSLCertificateKeyFile /etc/ssl/private/frostless.net.key
SSLCertificateChainFile /etc/ssl/certs/root_bundle.crt
SSLProtocol all -SSLv2 -SSLv3
SSLCipherSuite ECDH:AESGCM:HIGH:!RC4:!DH:!MD5:!aNULL:!eNULL
SSLHonorCipherOrder on
</VirtualHost>
添加上述配置,保存后,给配置文件建立一个软连接,命令如下:
sudo a2ensite default-ssl
进入apache2的配置文件目录,找到ports.conf,添加Listen 443,如果默认已添加,忽略此步骤。
检测SSL配置
上述的配置完成后,可先用命令检测配置是否正确,若不正确,请不要重启apache2!检测命令如下:
/usr/sbin/apache2ctl -t
输入命令后,若提示Syntax OK,则表示配置正常(如果提示错误,请根据具体错误修改,直到提示Syntax OK),可以重启apache2,命令如下:
sudo service apache2 restart
打开浏览器,输入https://你的域名,如浏览器地址栏显示加密小锁,则表示证书配置成功。若显示无法连接,请确保防火墙或安全组等策略有放行443端口(SSL配置端口)。
http重定向到https(可选)
若可以成功访问https,那么我们再执行最后一步,强制用户即使输入http,也跳转到https上来,操作很简单,添加下列三行代码即可。修改默认网站配置 /etc/apache2/site-avaliable/000-default.conf
<VirtualHost *:80>
...
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
...
</VirtualHost>
保存后执行以下命令,
sudo a2enmod rewrite
然后再次重启一下apache服务器:
sudo service apache2 restart
好了,大功告成,大家加油!
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)