前言
环境:
- 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
文件,如下:
#ServerName www.example.com:443
取消注释,并改为自己的域名。取消注释以下
#SSLCipherSuite RC4-SHA:AES128-SHA:HIGH:MEDIUM:!aNULL:!MD5 #SSLHonorCipherOrder on
- 将解压后的SSL证书上传至服务器任意文件夹,比如
/etc/httpd/cert/
修改以下参数,如果有注释则取消:
# 路径修改到*public.crt
SSLCertificateFile /etc/pki/tls/certs/localhost.crt
# 路径修改到.key
SSLCertificateKeyFile /etc/pki/tls/private/localhost.key
# 路径修改到*chain.crt
SSLCertificateChainFile
- 重启Apache
systemctl restart httpd
- 用
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://cloud.tencent.com/developer/article/1348412
- https://blog.csdn.net/miouqi/article/details/76997855
- https://blog.csdn.net/u010904188/article/details/80965234?depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-1&utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-1
- https://blog.csdn.net/weixin_42255190/article/details/99290039?depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-2&utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-2
版权属于:moluuser
本文链接:https://archive.moluuser.com/archives/19/
本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。