前言

环境:

  • CentOS7.3
  • Apache/2.4.6

HTTPS (全称:Hyper Text Transfer Protocol over SecureSocket Layer),是以安全为目标的 HTTP 通道,在HTTP的基础上通过传输加密和身份认证保证了传输过程的安全性。HTTPS 在HTTP 的基础下加入SSL 层,HTTPS 的安全基础是 SSL,因此加密的详细内容就需要 SSL。 HTTPS 存在不同于 HTTP 的默认端口及一个加密/身份验证层(在 HTTP与 TCP 之间)。这个系统提供了身份验证与加密通讯方法。它被广泛用于万维网上安全敏感的通讯,例如交易支付等方面。

申请证书

在阿里云获取免费的SSL证书,不过只能保护一个域名,如果需要多个域名可以选择支持泛域名的SSL证书。贴几个获取证书的链接。

通过审核后下载证书,一般得到:

  • *public.crt
  • *chain.crt
  • *.key

配置SSL

安装SSL模块

yum install mod_ssl openssl
安装好后,/etc/httpd/conf.d/存在 ssl.conf文件

配置ssl.conf

修改 /etc/httpd/conf.d/ssl.conf文件,如下:

  1. #ServerName www.example.com:443取消注释,并改为自己的域名。
  2. 取消注释以下

    #SSLCipherSuite RC4-SHA:AES128-SHA:HIGH:MEDIUM:!aNULL:!MD5
    #SSLHonorCipherOrder on 
  3. 将解压后的SSL证书上传至服务器任意文件夹,比如 /etc/httpd/cert/
    修改以下参数,如果有注释则取消:
# 路径修改到*public.crt
SSLCertificateFile /etc/pki/tls/certs/localhost.crt
# 路径修改到.key
SSLCertificateKeyFile /etc/pki/tls/private/localhost.key
# 路径修改到*chain.crt
SSLCertificateChainFile
  1. 重启Apache
    systemctl restart httpd
  2. https前缀访问你的域名即可。(这时 http也能访问)

开启HSTS

由于此时仍然可以通过 http访问,仍然不安全。可以为Apache开启HSTS。

HTTP严格传输安全协议(英语:HTTP Strict Transport Security,简称:HSTS),是一套由互联网工程任务组发布的互联网安全策略机制。网站可以选择使用HSTS策略,来让浏览器强制使用HTTPS与网站进行通信,以减少会话劫持风险。

修改 /etc/httpd/conf/httpd.conf,为文件添加以下内容。

#HSTS
Header always set Strict-Transport-Security "max-age=31536000"
RewriteEngine on
RewriteRule ^(/.*)$ https://%{HTTP_HOST}$1 [redirect=301]

重启Apache即可

  • http访问也会自动变为 https

检测SSL

https://myssl.com/


参考链接:




扫一扫在手机打开当前页