Nginx从HTTP到HTTPS:实现网站安全升级

这篇具有很好参考价值的文章主要介绍了Nginx从HTTP到HTTPS:实现网站安全升级。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。



💖The Begin💖点点关注,收藏不迷路💖

1.1 前言

在当今互联网时代,网站安全性越来越受到重视。随着HTTPS协议的普及,越来越多的网站开始考虑将自己的网站从HTTP升级为HTTPS,以提升用户数据的安全性和信任度。

本文将介绍如何使用Nginx来实现网站从HTTP到HTTPS的改造,以及一些常见的注意事项和问题解决方案。

1.2 为什么需要将网站从HTTP升级为HTTPS?

HTTPS协议通过加密用户和网站之间的数据传输,可以有效防止中间人攻击、窥探和数据篡改,提升用户数据的安全性。

同时,使用HTTPS还可以提升网站的信任度,对搜索引擎排名和SEO也有一定的影响。

因此,将网站从HTTP升级为HTTPS已经成为当前网站安全的必要措施之一。

改造前(访问网址提示不安全):

Nginx从HTTP到HTTPS:实现网站安全升级,# Linux运维笔记,# 网络安全/运维,http,nginx,https,Nginx HTTPS改造,网站安全升级,明文传输,漏洞整改
Nginx从HTTP到HTTPS:实现网站安全升级,# Linux运维笔记,# 网络安全/运维,http,nginx,https,Nginx HTTPS改造,网站安全升级,明文传输,漏洞整改

漏洞说明:明文传输(中危)

此系统后台存在明文传输,且未使用加密传输协议,用户名密码采取明文传输并未采取加密,容易被嗅探软件截取从而造成密码泄露。

漏洞证明

漏洞地址:http://192.168.234.10:8000/zyl-web/

整改建议

建议按照网站的密级要求,需要对密码传输过程中进行加密得使用加密的方式传输,如使用HTTPS。如果不用 HTTPS,可以在网站前端用 Javascript 做密码加密,加密后再进行传输。

1.3 Nginx实现HTTPS改造的步骤

1.3.1 配置Nginx启用SSL模块

什么是SSL模块?

SSL模块是Nginx的一个重要功能模块,用于支持HTTPS协议,实现数据传输的加密和安全性。通过SSL模块,Nginx可以处理SSL证书、私钥、加密算法等相关配置,确保网站数据在传输过程中的安全性。

1、检查Nginx是否支持SSL模块:

在终端输入以下命令检查Nginx是否支持SSL模块:

 nginx -V

Nginx从HTTP到HTTPS:实现网站安全升级,# Linux运维笔记,# 网络安全/运维,http,nginx,https,Nginx HTTPS改造,网站安全升级,明文传输,漏洞整改

如果输出中包含–with-http_ssl_module,则表示Nginx已经支持SSL模块。

2、如果输出中未包含–with-http_ssl_module,则需要重新编译安装Nginx并指定–with-http_ssl_module配置:

在编译安装Nginx时,需要指定–with-http_ssl_module配置来启用SSL模块。以下是配置Nginx启用SSL模块的步骤:

./configure --prefix=/usr/local/nginx  --with-http_ssl_module
make
make install

这里小编重新编译和安装,之前的nginx配置文件不会覆盖,为了保险还是先备份配置文间先

3、重启nginx

./nginx -s reload   # 加载nginx配置
./nginx -s stop    # 停止
./nginx   #启动

Nginx从HTTP到HTTPS:实现网站安全升级,# Linux运维笔记,# 网络安全/运维,http,nginx,https,Nginx HTTPS改造,网站安全升级,明文传输,漏洞整改

通过以上步骤,成功编译安装的Nginx将支持SSL模块,可以配置HTTPS协议来保障网站数据传输的安全性。

1.3.2 生成自签名SSL证书

如果你没有购买SSL证书,可以使用openssl工具生成自签名的SSL证书。以下是生成自签名SSL证书的步骤:

1、 创建cert 的证书文件夹:

在Nginx的安装目录下创建一个名为 cert 的证书文件夹,存放SSL证书和私钥文件,以便后续配置Nginx来使用这些证书。

cd /usr/local/nginx/  


mkdir cert


cd cert

2、 生成私钥文件:

openssl genrsa -des3 -out https.key 2048

Nginx从HTTP到HTTPS:实现网站安全升级,# Linux运维笔记,# 网络安全/运维,http,nginx,https,Nginx HTTPS改造,网站安全升级,明文传输,漏洞整改
执行命令会提示您输入密码短语(pass phrase)来保护私钥文件。这个密码短语将用于加密私钥文件,确保私钥的安全性。请注意,您需要记住这个密码短语,因为在使用私钥文件时会需要输入这个密码短语来解密私钥文件。

这条命令的含义是使用 OpenSSL 工具生成一个带有 DES3 加密的 2048 位 RSA 私钥文件。下面是各个参数的解释:

openssl: 表示要使用 OpenSSL 工具执行操作。
genrsa: 表示生成 RSA 私钥。
-des3: 表示使用 DES3 对私钥进行加密。DES3 是一种对称加密算法,提供更高级别的安全性。
-out https.key: 表示生成的私钥文件名为 https.key,私钥文件通常以 .key 为后缀。
2048: 表示生成的 RSA 私钥的长度为 2048 位。RSA 私钥的长度通常为 1024 位或 2048 位,长度越长安全性越高。

执行这条命令将生成一个带有 DES3 加密的 2048 位 RSA 私钥文件 https.key。生成的私钥文件将被加密以提高安全性,需要在使用时输入密码进行解密。

3、生成一个新的证书签名请求(CSR)

openssl req -new -key https.key -out https.csr

Nginx从HTTP到HTTPS:实现网站安全升级,# Linux运维笔记,# 网络安全/运维,http,nginx,https,Nginx HTTPS改造,网站安全升级,明文传输,漏洞整改

这条命令的含义是使用 OpenSSL 工具生成一个新的证书签名请求(CSR),其中包含了一个新的公钥和相关的证书信息。下面是各个参数的解释:

openssl: 表示要使用 OpenSSL 工具执行操作。
req: 表示执行证书请求相关的操作。
-new: 表示生成一个新的证书签名请求。
-key https.key: 表示使用之前生成的私钥文件 https.key 来生成证书签名请求。
-out https.csr: 表示将生成的证书签名请求保存为 https.csr 文件,通常以 .csr 为后缀。

执行这条命令将使用之前生成的私钥文件 https.key 来生成一个新的证书签名请求,并将该请求保存为 https.csr 文件。这个证书签名请求通常会被发送给证书颁发机构(CA)来获取SSL证书。

4、将之前加密的私钥文件解密,生成一个不带加密的私钥文件

cp https.key https.key.org   #创建一个名为https.key.org的副本文件

openssl rsa -in https.key.org -out https.key  

## 将从https.key.org文件中读取RSA私钥,然后将其解密并输出到https.key文件中。

这个过程实际上是将之前加密的私钥文件解密,生成一个不带加密的私钥文件,为了方便后续使用私钥文件。

Nginx从HTTP到HTTPS:实现网站安全升级,# Linux运维笔记,# 网络安全/运维,http,nginx,https,Nginx HTTPS改造,网站安全升级,明文传输,漏洞整改

5、生成一个自签名的 X.509 证书

openssl x509 -req -days 365 -in https.csr -signkey https.key -out https.crt

Nginx从HTTP到HTTPS:实现网站安全升级,# Linux运维笔记,# 网络安全/运维,http,nginx,https,Nginx HTTPS改造,网站安全升级,明文传输,漏洞整改

下面是各个参数的解释:

openssl: 表示要使用 OpenSSL 工具执行操作。
x509: 表示执行 X.509 证书相关的操作。
-req: 表示使用证书签名请求(CSR)来生成证书。
-days 365: 表示生成的证书有效期为 365 天。
-in https.csr: 表示使用之前生成的证书签名请求文件 https.csr 来生成证书。
-signkey https.key: 表示使用指定的私钥文件 https.key 来签署生成的证书。
-out https.crt: 表示将生成的证书保存为 https.crt 文件,通常以 .crt 为后缀。

执行这条命令将使用之前生成的证书签名请求文件 https.csr 和私钥文件 https.key 来生成一个自签名的 X.509 证书,并将该证书保存为 https.crt 文件。

这个自签名的证书可以用于配置服务器使用 SSL/TLS 加密通信,但在生产环境中建议使用由受信任的证书颁发机构(CA)签发的证书。

Nginx从HTTP到HTTPS:实现网站安全升级,# Linux运维笔记,# 网络安全/运维,http,nginx,https,Nginx HTTPS改造,网站安全升级,明文传输,漏洞整改

1.3.3 配置Nginx使用SSL证书

Nginx默认配置包含HTTPS设置,但已被注释掉。

如下,这里我们根据需求重新配置:

Nginx从HTTP到HTTPS:实现网站安全升级,# Linux运维笔记,# 网络安全/运维,http,nginx,https,Nginx HTTPS改造,网站安全升级,明文传输,漏洞整改

一旦生成了SSL证书和私钥文件,接下来就可以配置Nginx来使用这些文件了。以下是配置Nginx使用SSL证书的步骤:

1、将SSL证书和私钥文件上传到服务器的指定目录,例如 /usr/local/nginx/cert。

2、编辑Nginx配置文件,根据需求配置SSL的server块。在server块中添加SSL配置参数:

## 部分配置内容:

server {
        listen       8000 ssl;
        server_name  192.168.234.10;
        
        #charset koi8-r;
    
        #access_log  logs/host.access.log  main;


       ssl_certificate      /usr/local/nginx/cert/https.crt;
       ssl_certificate_key  /usr/local/nginx/cert/https.key;

        ssl_session_cache    shared:SSL:1m;
        ssl_session_timeout  5m;

        ssl_ciphers  HIGH:!aNULL:!MD5;
        ssl_prefer_server_ciphers  on;

        location / {
           root   html;
            index  index.html index.htm;
        }
        location /zyl-web01 {
            alias   /usr/local/nginx/html/zyl-web01;
            index  index.html index.htm;
        }

        location /zyl-web02 {
            alias  /usr/local/nginx/html/zyl-web02/dist;
            index  index.html index.htm;
        }

        location /zyl-web {
            alias  /usr/local/nginx/html/zyl-web/dist;
            index  index.html index.htm;
        }

。。。。。。。。。。。。。

3、重启nginx

./nginx -s reload   # 加载nginx配置
./nginx -s stop    # 停止
./nginx   #启动

4、访问测试

https://192.168.234.10:8000/zyl-web/

Nginx从HTTP到HTTPS:实现网站安全升级,# Linux运维笔记,# 网络安全/运维,http,nginx,https,Nginx HTTPS改造,网站安全升级,明文传输,漏洞整改

1.4 结语

通过以上步骤,你已经成功配置了Nginx来使用SSL证书,启用了HTTPS协议,保障了网站数据传输的安全性。

无论是生成自签名SSL证书还是使用购买的SSL证书,都能有效提升网站的安全性。祝你的网站安全可靠!

Nginx从HTTP到HTTPS:实现网站安全升级,# Linux运维笔记,# 网络安全/运维,http,nginx,https,Nginx HTTPS改造,网站安全升级,明文传输,漏洞整改文章来源地址https://www.toymoban.com/news/detail-842928.html


💖The End💖点点关注,收藏不迷路💖

到了这里,关于Nginx从HTTP到HTTPS:实现网站安全升级的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Nginx配置https网站访问第三方节点的http资源

    https网站无法直接下载http网站的文件。解决思路有以下几种情况:1.两个网站都同时改为http或https。2.通过nginx转发。3.通过后端java代码获取对方网站的文件流然后把流返回给前端 本文介绍如果通过nginx转发访问http网站 配置规则一: 这样配置之后,本地网站比如是:访问htt

    2024年02月16日
    浏览(34)
  • 深入理解 HTTP 和 HTTPS:提升你的网站安全性(下)

    🤍 前端开发工程师(主业)、技术博主(副业)、已过CET6 🍨 阿珊和她的猫_CSDN个人主页 🕠 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 🍚 蓝桥云课签约作者、已在蓝桥云课上架的前后端实战课程《Vue.js 和 Egg.js 开发企业级健康管理项目》、《带你从入

    2024年02月04日
    浏览(40)
  • Linux升级openssl版本、安装nginx并配置https证书支持TLSv1.3

    参考文章 https://blog.csdn.net/weixin_43153854/article/details/109823633?utm_medium=distribute.pc_relevant.none-task-blog-2 default baidujs_baidulandingword~default-4-109823633-blog-106643510.pc_relevant_default_base2spm=1001.2101.3001.4242.3utm_relevant_index=7 参考文章 https://blog.csdn.net/t8116189520/article/details/81909574

    2024年02月14日
    浏览(32)
  • Nginx实现本地http转https请求

    目录 前言: 一、安装nginx 二、安装OpenSSL          1、下载OpenSSL:          2、配置环境变量:                   2.1:配置环境变量,OpenSSL_HOME                    2.2:配置path  三、生成https证书          1、创建ssl文件夹用于存放证书。创建私钥 (建议使用系统窗口,

    2024年01月20日
    浏览(32)
  • nginx实现https与http共存方案

    在日常开发中,到正式上线的时候大部分需要使用https来保证链路传输的安全性,这块相信大家都了解了,但有些特殊场景下可能需要http和https共存,并且端口都是同一个端口,只是协议不同,那这块我们就借助nginx来配置了。 通过configure安装共存需要的模块stream、with-strea

    2024年02月10日
    浏览(29)
  • Nginx如何实现http自动跳转到https

    本文主要介绍了Nginx实现http自动跳转到https,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着微点阅读小编来一起学习学习吧 https是更安全的http,通过http自动跳转https,可以更便于用户使用web。 有几下几个方法可以

    2024年02月11日
    浏览(35)
  • Linux中Nginx的HTTP和HTTPS常用配置以及proxy_pass详解

    如果出现 (configure arguments: --with-http_ssl_module), 则已安装(下面的步骤可以跳过,直接进行 第3步 )。 解压缩下载好的证书(证书一般是pem文件和key文件,这里名字可以随便改) 将下载好的证书上上传到服务器,我将证书放在了root目录下的card文件夹 配置如下:

    2024年02月01日
    浏览(44)
  • 【Nginx运维】Nginx升级打补丁

    升级nginx的过程主要需要以下步骤: 1.备份当前nginx版本及其配置文件。 2.下载新版本的nginx安装包。(如nginx-1.20.1.tar.gz) 3.解压缩安装包,并进入该目录。 4.使用configure脚本配置编译选项。 5.执行make命令进行编译。 make 6.停止旧版本的nginx服务,启动新版本nginx服务。 7.验证

    2024年02月12日
    浏览(25)
  • 【linux】Nginx企业级优化:恶意域名解析优化、禁止IP访问网站、HTTP请求方法优化

    鱼弦:公众号:红尘灯塔,CSDN内容合伙人、CSDN新星导师、51CTO(Top红人+专家博主) 、github开源爱好者(go-zero源码二次开发、游戏后端架构 https://github.com/Peakchen) 恶意域名解析优化: 恶意域名解析优化是指通过配置Nginx,阻止恶意域名对服务器的访问,以提高服务器的安全性

    2024年04月26日
    浏览(28)
  • Nginx配置ssl证书实现https安全访问

    目录 一、Nginx的安装与配置 安装步骤 二、SSL证书获取 三、Nginx配置 前题条件,拥有服务器与可以解析到该服务器的自己的域名。 若已安装好了Nginx,则需查看自己的Nginx是否开启了SSL的模块功能:  显示如上,则代表ssl功能已开启,否则可能出现以下错误提示: nginx: [emer

    2024年02月15日
    浏览(29)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包