Nginx如何配置HTTPS详解
1. 什么是HTTPS?HTTPS(全称:Hypertext Transfer Protocol Secure),是以安全为目标的 HTTP 通道,在HTTP的基础上通过传输加密和身份认证保证了传输过程的安全性。HTTPS在HTTP的基础下加入SSL,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。HTTPS存在不同于HTTP的默认端口及一个加密/身份验证层(在HTTP与TCP之间)。这个系统提供了身份验证与加密通讯方法。它被广泛用于万维网上安全敏感的通讯,例如交易支付等方面 。
1.1 HTTPS好处
[*]使用 HTTPS 协议可认证用户和服务器,确保数据发送到正确的客户机和服务器;
[*]HTTPS 协议是由 SSL+HTTP构建的可进行加密传输、身份认证的网络协议,要比 HTTP安全,可防止数据在传输过程中被窃取、改变,确保数据的完整性。
[*]HTTPS 是现行架构下最安全的解决方案,虽然不是绝对安全,但它大幅增加了中间人攻击的成本;
1.2 HTTPS缺点
[*]相同网络环境下,HTTPS 协议会使页面的加载时间延长近 50%,增加10%到20%的耗电。此外,HTTPS 协议还会影响缓存,增加数据开销和功耗
[*]HTTPS 协议的安全是有范围的,在黑客攻击、拒绝服务攻击和服务器劫持等方面几乎起不到什么作用,最关键的是,SSL证书的信用链体系并不安全。特别是在某些国家可以控制CA根证书的情况下,中间人攻击一样可行;
[*]成本增加。部署HTTPS后,因为HTTPS 协议的工作要增加额外的计算资源消耗,例如 SSL 协议加密算法和 SSL交互次数将占用一定的计算资源和服务器成本。在大规模用户访问应用的场景下,服务器需要频繁地做加密和解密操作,几乎每一个字节都需要做加解密,这就产生了服务器成本。随着云计算技术的发展,数据中心部署的服务器使用成本在规模增加后逐步下降,相对于用户访问的安全提升,其投入成本已经下降到可接受程度。
2. Nginx配置HTTPS
2.1 申请SSL证书
可以去申请阿里云免费CA证书 https://www.aliyun.com/product/cas
腾讯云: https://cloud.tencent.com/product/ssl
2.2 申请腾讯云免费证书
这里已经提前申请下来了。直接在腾讯云下载即可。
2.3 在服务器端解压
# ls
nginx.malusspectabilis.top_nginx.zip
# unzip nginx.malusspectabilis.top_nginx.zip
Archive:nginx.malusspectabilis.top_nginx.zip
creating: nginx.malusspectabilis.top_nginx/
inflating: nginx.malusspectabilis.top_nginx/nginx.malusspectabilis.top.csr
inflating: nginx.malusspectabilis.top_nginx/nginx.malusspectabilis.top_bundle.crt
inflating: nginx.malusspectabilis.top_nginx/nginx.malusspectabilis.top_bundle.pem
inflating: nginx.malusspectabilis.top_nginx/nginx.malusspectabilis.top.key2.4配置HTTPS
具体可参考官方文档;https://nginx.org/en/docs/http/ngx_http_ssl_module.html
配置https功能基于模块ngx_http_ssl_module,编译安装需安装这个模块开启ssl功能。yum安装的nginx默认是开启这个模块ngx_http_ssl_module。
# cat haitang-https.conf
server{
listen 443 ssl;是否启用ssl功能
charset utf-8; 字符集utf-8
server_name nginx.malusspectabilis.top; 域名
ssl_session_timeout 5m;客户端连接可复用ssl 缓存有效时间
ssl_certificate /apps/nginx/conf.d/tls/nginx-malusspectabilis.top/nginx.malusspectabilis.top_bundle.pem;当前虚拟主机的CA证书信息,一般是Crt文件
ssl_certificate_key /apps/nginx/conf.d/tls/nginx-malusspectabilis.top/nginx.malusspectabilis.top.key;当前虚拟主机的私钥文件,一般为key文件
ssl_session_cache shared:sslcache:20m; 配置ssl缓存
ssl_protocols TLSv1.2 TLSv1.3; 支持的ssl协议版本,早期为ssl现在为tls;
location / {
root "/data/nginx/html/haitang/";
}
}
语法检查正常。
# nginx -t
nginx: the configuration file /apps/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /apps/nginx/conf/nginx.conf test is successful2.5 准备访问页面
# echo "海棠"> /data/nginx/html/haitang/index.html 2.6 加载Nginx并检查端口是否启动
# nginx -s reload
# ss -tnlp | grep 443
LISTEN 0 128 *:443 *:* users:(("nginx",pid=1802,fd=7),("nginx",pid=1801,fd=7),("nginx",pid=1800,fd=7),("nginx",pid=1799,fd=7),("nginx",pid=1798,fd=7),("nginx",pid=1761,fd=7))2.7 配置本地hosts解析
sh-3.2# echo "xxxxxxx nginx.malusspectabilis.top" >> /etc/hosts2.8 测试是否是https访问
来源:https://www.cnblogs.com/xunweidezui/p/17184305.html
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!
页:
[1]