随着互联网的发展,各大浏览器、搜索引擎建议网站主添加SSL安全证书。在这篇文章中,主要分享在LAMP(Apache)网站环境部署SSL证书,让我们网址也支持HTTPS加密方式。

目录:

  1. 申请免费或购买付费ssl证书
  2. 安装SSL模块
  3. 修改网站配置文档
  4. 强制Apache使用HTTPS(可选,建议)
  5. 重启服务器

申请免费或购买付费ssl证书

免费SSL申请网站:

  1. 腾讯云目前提供免费一年的TrustAsia单域名证书。
  2. freessl可以免费申请三个月的Let’s Encrypt 域名证书。到期可以重新申请。

付费的SSL很多,自行百度。

安装SSL模块

这里只提供Centos的安装方法。

yum install openssl
yum install mod_ssl

检查/etc/httpd/conf.d目录中的ssl.conf文件LoadModule ssl_module modules/mod_ssl.so一行,如果看到前面有#把去掉启动,如果已经去掉就不管。

修改网站配置文档

同样的在ssl.conf文件中,编辑<VirtualHost _default_:443>位置下面的几行

DocumentRoot "/var/www/jermey.cn/public_html/"
ServerName jermey.cn:443
SSLEngine on
SSLCertificateFile /root/jermey.cn.crt
SSLCertificateKeyFile /root/jermey.cn.key
SSLCertificateChainFile /root/root_bundle.crt

主要的就是上面几行,修改成我们开始准备新添的站点路径以及我们上传到ROOT目录的3个证书文件。修改后就上传到对应位置替换。

强制Apache使用HTTPS(可选,建议)

如果你想让你的用户访问你的webapp时只使用安全的HTTPS协议,而不是没加密过的HTTP协议,可以这样配置Apache:

<Virtualhost *:80>里面加入如下内容:

RewriteEngine On
RewriteRule ^(.*)$ https://%{HTTP_HOST}$1 [R,L]

<VirtualHost _default_:443>里面加入如下内容:

Header always set Strict-Transport-Security "max-age=63072000; includeSubdomains; preload"

重启服务器

service httpd restart

最后,我们用https://域名,看看地址栏是否有证书显示。