nginx一个端口http和https同时访问

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了nginx一个端口http和https同时访问相关的知识,希望对你有一定的参考价值。

HTTPS标准端口443,HTTP标准端口80;所以不能共享一个端口。

一、什么是HTTPS

HTTPS是在HTTP上建立SSL加密层,并对传输数据进行加密,是HTTP协议的安全版。HTTPS主要作用是:

(1)对数据进行加密,并建立一个信息安全通道,来保证传输过程中的数据安全;

(2)对网站服务器进行真实身份认证。

二、什么是HTTP

HTTP是互联网上应用最为广泛的一种网络协议,是一个客户端和服务器端请求和应答的标准(TCP),用于从WWW服务器传输超文本到本地浏览器的传输协议。HTTP是采用明文形式进行数据传输,极易被不法分子窃取和篡改。

三、HTTPS和HTTP的区别是什么

1、HTTPS是加密传输协议,HTTP是明文传输协议;

2、HTTPS需要用到SSL证书,而HTTP不用;

3、HTTPS比HTTP更加安全,对搜索引擎更友好,利于SEO;

4、 HTTPS标准端口443,HTTP标准端口80;

5、 HTTPS基于传输层,HTTP基于应用层;

6、 HTTPS在浏览器显示绿色安全锁,HTTP没有显示;

总的来说HTTPS比HTTP更加安全,能够有效的保护网站用户的隐私信息安全,这也是为什么现在的HTTPS网站越来越多。

SSL证书就是遵守SSL协议,由受信任的数字证书颁发机构CA(如:沃通CA)在验证服务器身份后颁发的一种数字证书。

参考技术A

HTTP与HTTPS不能共享一个端口。

解释原因:

     HTTP通常使用80端口。

    HTTPS通常使用443端口。

解决办法:HTTP可以访问后,然后配置SSL证书实现HTTPS就可以了,默认就是可以HTTP与HTTPS都可以访问(因为要设置强制HTTPS访问还需另外配置)

关闭端口80的nginx上的http和https重定向

我有一个项目并使用nginx反向代理相应端口上的请求而不打开端口。我也使用Lets加密ssl认证,一切正常。

我想做的是,关闭80端口并打开443。我以为 ,

另一个端口关闭=更安全一点。

但是,现在http到https重定向不起作用(显然我猜)。现在,只有在前面键入前缀“https://”时,链接才有效。

所以我有两个问题,

1)有没有办法在不打开端口80的情况下将链接重定向到https?

2)我们如何安全地假设将端口80打开以使重定向工作,如果唯一运行的应用程序是这个并且只有端口443和22打开?

我的配置文件是这样的:

server {
  listen 80;
  server_name domain.com;
  return 301 https://$server_name$request_uri;
}

server {
  listen 443 ssl; 
  server_name domain.com;


  add_header Strict-Transport-Security "max-age=31536000";
  ssl_certificate /etc/letsencrypt/live/domain.com/fullchain.pem;
  ssl_certificate_key /etc/letsencrypt/live/domain.com/privkey.pem;
  include /etc/letsencrypt/options-ssl-nginx.conf;
  ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;


    if ($scheme != "https") {
        return 301 https://$host$request_uri;
    } 


   location / {
      proxy_pass http://127.0.0.1:PORT;
      proxy_http_version 1.1;
      proxy_set_header Upgrade $http_upgrade;
      proxy_set_header Connection 'upgrade';
      proxy_set_header Host $host;
      proxy_cache_bypass $http_upgrade;
    }

}
答案

当您在服务器本身关闭时,不能从一个端口转发流量。

如果可能,并且您具有高级网络管理,则可以在流量到达服务器之前将流量从80重定向到443。例如,在Digital Ocean中,您可以在网络下添加负载均衡器并设置从端口80到443的重定向。这样您就可以在服务器上关闭端口80。

以上是关于nginx一个端口http和https同时访问的主要内容,如果未能解决你的问题,请参考以下文章

使用nginx-ingress-controller,同时配置http和https访问应用

利用nginx反向代理功能将http网站改造成https

nginx怎么配置ssl可以即允许http访问也允许https访问

nginx基本用法和HTTPS配置

nginx的多域httphttps同时访问配置及http重定向https

nginx配置http访问自动跳转到https