Nginx 配置 HTTPS

本文详细介绍了如何配置Nginx以支持HTTPS,从HTTP与HTTPS的区别开始,讲解了HTTPS的安全作用,SSL证书的创建与申请,以及Nginx SSL模块的安装。通过实例演示了自签名证书的生成、上传和配置,同时还提供了HTTP到HTTPS的自动跳转配置。最后,文章讨论了HTTPS的优化,包括减少CPU消耗和增强安全性策略如HSTS。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

HTTP 与 HTTPS

超文本传输协议HTTP协议被用于在Web浏览器和网站服务器之间传递信息, HTTP协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了 Web浏览器和网站服务器之间的传输报文,就可以直接读懂其中的信息,因此, HTTP协议不适合传输一些敏感信息,比如:信用卡号、密码等支付信息。

为了解决HTTP协议的这一缺陷,需要使用另一种协议:安全套接字层超文本传 输协议HTTPS,为了数据传输的安全,HTTPS在HTTP的基础上加入了SSL/TLS协议, SSL/TLS依靠证书来验证服务器的身份,并为浏览器和服务器之间的通信加密。

HTTPS介绍

超文本传输安全协议HTTPS(Hypertext Transfer Protocol Secure)是超文本传输协议和SSL/TLS的组合,用以提供加密通讯及对网络服务器身份的鉴定。

HTTPS也可以理解为HTTP over SSL,即HTTP连接建立在SSL安全连接之上。

HTTPS协议的主要作用可以分为两种:

  • 一种是建立一个信息安全通道,来保证数据传输的安全;

  • 另一种就是确认网站的真实性。

SSL介绍

SSL(Secure Socket Layer)安全套接字层是一种数字证书,它使用ssl协议在浏览器和web server之间建立一条安全通道,数据信息在client与server之间的安全传输。SSL使用证书来创建安全连接,通常有两种验证模式:

  • 仅客户端验证服务器的证书,客户端自己不提供证书;
  • 客户端和服务器都互相验证对方的证书。

安装 Nginx 的 SSL 模块

查看 nginx 是否安装 http_ssl_module 模块

/usr/local/nginx/sbin/nginx -V

如果出现 configure arguments: …(其它配置) –with-http_ssl_module, 则已安装(下面的步骤可以跳过,进入 nginx.conf 配置)

如果没有,则需要删除nginx目录下的文件,重新编译

# 先删除所有已存在的 nginx 文件
cd /usr/local/nginx
service nginx stop
rm -rf *

# 重新编译
./configure 
--sbin-path=/usr/local/nginx/nginx 
--conf-path=/usr/local/nginx/conf/nginx.conf 
--pid-path=/usr/local/nginx/logs/nginx.pid 
--with-http_gzip_static_module 
--with-http_stub_status_module 
--with-file-aio 
--with-http_realip_module 
--with-http_ssl_module 
--with-pcre=/home/pcre-8.44 
--with-zlib=/home/zlib-1.2.11 
--with-openssl=/home/openssl-1.1.1g
--prefix=/usr/local/nginx --with-http_ssl_module

# 重新安装nginx
make && make install

# 重启nginx
service nginx restart

# 查看 nginx 的 http_ssl_module 模块是否安装成功
./nginx -V

自签名证书

SSL需要使用TLS证书对通信进行加密,通常可通过openssl工具生产自建证书。

也可以使用自己签名SSL证书配置HTTPS,使用自己签名SSL证书配置到服务器后,可以通过HTTPS正常访问应用,但是浏览器会提示该网站的安全证书不受信任,不会有绿锁标志。

openssl创建证书
openssl req -x509 -nodes -days 36500 -newkey rsa:2048 -keyout server.key -out server.crt -subj "/C=CN/ST=beijing/L=beijing/O=test/OU=Web S
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值