首页 > 系统相关 >如何使用『Nginx』配置后端『HTTPS』协议访问

如何使用『Nginx』配置后端『HTTPS』协议访问

时间:2023-10-06 11:05:58浏览次数:69  
标签:ssl Nginx 访问 IP 证书 SSL 域名 HTTPS nginx


前言

本篇博客主要讲解如何使用 Nginx 部署后端应用接口 SSL 证书,从而实现 HTTPS 协议访问接口(本文使用公网 IP 部署,读者可以自行替换为域名)

申请证书

须知

请在您的云服务平台申请 SSL 证书,一般来说证书期限为一年,到期限需要再次申请

博主这里使用的是阿里云云服务器,阿里云每年可以免费申请 20 个 DigiCert SSL 证书,但是 DigiCert 证书不支持绑定 IP,如果您输入 IP,则会弹出如下错误

Globalsign、GeoTrust、vTrus、CFCA品牌OV单域名证书支持绑定IP,建议您购买Globalsign品牌的证书

这里说明下使用公网 IP 申请证书的情况,我们知道一般来说 SSL 证书只是供域名安装,仅有部分 DV 和 OV 证书是支持 IP 部署的,接下来将要讲解可以使用 IP 部署的免费证书申请步骤

如果是部署【域名】的话可以在自己的云服务厂商下面申请并部署,一般都有免费的额度,对于个人来说足够,比较方便

申请步骤

访问:Free SSL Certificates and SSL Tools - ZeroSSL

如何使用『Nginx』配置后端『HTTPS』协议访问_SSL

如何使用『Nginx』配置后端『HTTPS』协议访问_https_02

如何使用『Nginx』配置后端『HTTPS』协议访问_ssl_03

然后选择 90 天的证书,一直确定即可,然后按照流程,DNS 验证或是 HTTP 文件验证即可,下面使用 HTTP 文件验证方式作为示例

选择 Download Auth File 并将 Auth File 存放在服务器的 /usr/share/nginx/html/.well-known/pki-validation 文件夹下,令服务器上的 nginx 提供对 Auth File 的HTTP访问的响应

location /.well-known/pki-validation/ {
           root /usr/share/nginx/html/;
        }

没有必要一定是上面这个目录,只要保证 nginx 具有该目录的操作权限即可,否则会爆出 403 错误

如何使用『Nginx』配置后端『HTTPS』协议访问_SSL_04

然后按照官方给出的 Nginx 部署证书文档部署即可:Installing SSL Certificate on NGINX – ZeroSSL

上传所有 SSL 证书文件之后,需要合并 certificate.crt 和 ca_bundle.crt 文件

cat certificate.crt ca_bundle.crt >> certificate_merge.crt

证书配置

现在服务器的 8080 端口已经运行了后端接口,下面我将要部署 SSL 证书到公网 IP 上

配置 nginx.conf

server {
        listen       443 ssl http2 default_server;
        listen       [::]:443 ssl http2 default_server;
        server_name  _;

        ssl_certificate "/home/dev/certs/certificate_merge.crt";
        ssl_certificate_key "/home/dev/certs/private.key";

        ssl_session_cache shared:SSL:1m;
        ssl_session_timeout  10m;
        ssl_ciphers PROFILE=SYSTEM;
        ssl_prefer_server_ciphers on;

        # Load configuration files for the default server block.
        include /etc/nginx/default.d/*.conf;

        location / {
          proxy_pass  http://localhost:8080/;
          proxy_set_header           Host $host;
          proxy_set_header  X-Real-IP  $remote_addr;
          proxy_set_header           X-Forwarded-For       $proxy_add_x_forwarded_for;
          client_max_body_size  100m;
        }
    }
# 重启 Nginx
systemctl restart nginx.service

证书分类

域名型证书 (DV)

SSL证书是只验证网站域名所有权的简易型(Class 1级)SSL证书,可10分钟快速颁发,能起到加密传输的作用,但无法向用户证明网站的真实身份。

目前市面上的免费证书都是这个类型的,只是提供了对数据的加密,但是对提供证书的个人和机构的身份不做验证。

组织/企业型证书 (OV)

用于验证此域名由特定公司、组织、或者机构所拥有,同时申请的主体身份符合合法注册或者受权威机构承认的实体。

提供加密功能,对申请者做严格的身份审核验证,提供可信身份证明,和DV SSL的区别在于,OV SSL 提供了对个人或者机构的审核,能确认对方的身份,安全性更高。一般为收费证书

增强型证书 (EV)

Extended Validation (EV) 证书是目前最高信任级别的 SSL 证书。证书颁发机构对此的审核极其严苛。增强型证书具有最高级别可信度及安全性,显示带公司名称的绿色地址栏是它的显著特点之一,它可以让访问者更加确信以及更加放心的相信他们所进行交易的网站是真实合法的,从而提升在线交易量。

金融证券、银行、第三方支付、网上商城等,重点强调网站安全、企业可信形象的网站,涉及交易支付、客户隐私信息和账号密码的传输。这部分的验证要求最高,申请费用也是最贵的。

参考文章

无域名,为弹性公网IP申请SSL证书 - 简书 (jianshu.com)

【SSL】OV、DV和EV证书的区别-阿里云开发者社区 (aliyun.com)

如何下载并在服务器上安装SSL证书_数字证书管理服务-阿里云帮助中心 (aliyun.com)

标签:ssl,Nginx,访问,IP,证书,SSL,域名,HTTPS,nginx
From: https://blog.51cto.com/returntmp/7722181

相关文章

  • Nginx__高级进阶篇之LNMP动态网站环境部署
    动态网站和LNMP(Linux+Nginx+MySQL+PHP)都是用于建立和运行web应用程序的技术。动态网站是通过服务器端脚本语言(如PHP、Python、Ruby等)动态生成网页内容的网站。通过这种方式,动态网站可以根据用户的不同请求生成不同的网页。LNMP是一种服务器端技术组合,它使用Linux操作系统,Nginx......
  • 软件设计模式系列之二十五——访问者模式
    访问者模式(VisitorPattern)是一种强大的行为型设计模式,它允许你在不改变被访问对象的类的前提下,定义新的操作和行为。本文将详细介绍访问者模式,包括其定义、举例说明、结构、实现步骤、Java代码实现、典型应用场景、优缺点、类似模式以及最后的小结。1模式的定义访问者模式允许......
  • 【解决了一个小问题】terraform apply 的时候出现访问 localhost 出错
    作者:张富春(ahfuzhang),转载时请注明作者和引用链接,谢谢!cnblogs博客zhihuGithub公众号:一本正经的瞎扯有这样一段terraform的部署脚本:provider"kubernetes"{config_path="~/.kube/config_dir/k8s.yaml"}执行terraformapply的时候报这样的错误:│Error:G......
  • vue:登录后跳转到之前要访问的页面([email protected])
    一,安装pinialiuhongdi@lhdpc:/data/vue/responsive$npm-Sinstallpinia安装完成后查看已安装的版本:liuhongdi@lhdpc:/data/vue/[email protected]/data/vue/responsive└──[email protected]二,代码:1,store/redirect.js123456......
  • 静态文件资源的访问
    flask中访问静态资源。#static_folder:指定静态文件夹的目录名,这个目录是基于__name__的同一级目录。(默认就是static)#static_url_path:指定访问静态文件夹的前缀url,(默认是/static)app=Flask(__name__,static_folder="static",static_url_path="/resource")#浏览器中访......
  • 随机文件访问RandomAccessFile
    RandomAccessFile 是Java标准库中提供的一个文件访问类,可以用于读取和写入文件。与其他输入/输出流不同,RandomAccessFile 允许直接访问文件的任意位置,可以在文件中随机定位读写数据。 为什么使用它而不是传统的IO流: 1.RandomAccessFile 允许直接跳转到文件的任意位置进......
  • Nginx listen 监听端口详解
    listen指令监听端口:listenaddress:port[default|default_server|[backlog=num|rcvbuf=size|sndbuf=size|accept_filter|deferred|bind|ipv6only=[on|off]|ssl]];默认:listen80配置块:server含义指定服务监听的地址,如果使用IP协议,则可以包......
  • 在Kubernetes环境中有关Nginx Ingress与API Gateway的连接问题
    文章目录小结问题解决参考小结在Kubernetes环境中是通过NginxIngress来从外部访问Kubernetes内部的环境,并用APIGateway来分发请求,碰到了502Badgateway.的问题,并尝试解决。问题从外部通过NginxIngress访问Kubernetes内部的环境APIGateway,返回错误:502Badgateway.这里API......
  • Windows 10 同时使用WiFi(访问internet), 使用有线网卡访问校园网
    设备和网络情况一台安装有windows10的笔记本电脑笔记本有100-base-T有线网卡,接入172.27.64.1/18(255.255.192.0)的校园网9172.16.0.0/12,202.118.80.0/20)笔记本有wifi网卡,用其接入手机共享出的wifi热点两个网卡同时启动时,ip地址如下:有线网卡(Manualip):172.27.125.1......
  • 内网穿透:实现远程访问和测试内部网络的关键技术
    ......