Nginx配置SSL和WSS步骤介绍

下面是 Nginx 配置 SSL 和 WSS 的完整攻略。同时提供两个示例说明。

1. 生成 SSL 证书

生成 SSL 证书是配置 HTTPS 的第一步。可以使用 OpenSSL 工具生成自签名的证书,或者购买证书。

1.1 自签名的证书

使用 OpenSSL 工具生成自签名的 SSL 证书:

# 生成私钥
openssl genrsa -out server.key 2048

# 生成证书签名请求(CSR)文件
openssl req -new -key server.key -out server.csr

# 签发证书
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt

这样就得到了一个新的自签名的 SSL 证书,包括私钥文件 server.key 和证书文件 server.crt

1.2 购买证书

如果需要购买 SSL 证书,则需要到可信的证书颁发机构购买。

2. 配置 HTTPS

有了 SSL 证书之后,就可以在 Nginx 上开启 HTTPS 了。

2.1 修改 Nginx 配置文件

在 Nginx 配置文件中添加以下内容:

server {
    listen 443 ssl;
    server_name example.com;

    ssl_certificate /path/to/server.crt;
    ssl_certificate_key /path/to/server.key;

    ...
}

其中:

  • listen 443 ssl; 表示监听 443 端口,并启用 SSL。
  • server_name 指定域名。
  • ssl_certificatessl_certificate_key 分别指定证书文件和私钥文件的路径。

2.2 重启 Nginx

修改完 Nginx 配置文件后,需要重启 Nginx 生效。

sudo systemctl restart nginx

3. 配置 WSS

WSS(WebSocket Secure)是 WebSocket 的加密版。使用 WSS 时,需要开启 HTTPS,并在 Nginx 中配置反向代理。

3.1 修改 Nginx 配置文件

在 Nginx 配置文件中添加以下内容:

server {
    listen 443 ssl;
    server_name example.com;

    ssl_certificate /path/to/server.crt;
    ssl_certificate_key /path/to/server.key;

    # 配置 WebSocket 反向代理
    location /ws/ {
        proxy_pass http://localhost:3000/ws/;

        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }

    ...
}

其中:

  • location /ws/ 表示将客户端的 WebSocket 连接路径重定向到本地的 WebSocket 服务端口上。
  • proxy_pass 指定代理请求的目标地址。
  • proxy_http_version 指定使用的 HTTP 协议版本。
  • proxy_set_header 设置代理请求中的头部信息。

3.2 重启 Nginx

修改完 Nginx 配置文件后,需要重启 Nginx 生效。

sudo systemctl restart nginx

4. 示例说明

4.1 配置 HTTPS

假设现在有一个网站域名为 example.com,并且在服务器上已经安装了 Nginx。

首先,根据第一步的教程,生成自签名的 SSL 证书。

接着,在 Nginx 配置文件中添加以下内容:

server {
    listen 443 ssl;
    server_name example.com;

    ssl_certificate /etc/nginx/ssl/server.crt;
    ssl_certificate_key /etc/nginx/ssl/server.key;

    location / {
        root /var/www/html;
        index index.html;
    }
}

其中:

  • listen 443 ssl; 表示监听 443 端口,并启用 SSL。
  • server_name 指定域名。
  • ssl_certificatessl_certificate_key 分别指定证书文件和私钥文件的路径。
  • location / 指定静态文件的访问路径和跟目录。

最后,重启 Nginx。

sudo systemctl restart nginx

4.2 配置 WSS

假设现在有一个 WebSocket 服务应用,监听的端口为 3000。需要将 WebSocket 连接的路径 /ws/ 映射到 Nginx 服务器上。

首先,根据第一步的教程,生成自签名的 SSL 证书。

接着,在 Nginx 配置文件中添加以下内容:

server {
    listen 443 ssl;
    server_name example.com;

    ssl_certificate /etc/nginx/ssl/server.crt;
    ssl_certificate_key /etc/nginx/ssl/server.key;

    location /ws/ {
        proxy_pass http://localhost:3000/ws/;

        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }
}

其中:

  • listen 443 ssl; 表示监听 443 端口,并启用 SSL。
  • server_name 指定域名。
  • ssl_certificatessl_certificate_key 分别指定证书文件和私钥文件的路径。
  • location /ws/ 指定代理 WebSocket 连接的路径和目标地址。
  • proxy_http_version 指定使用的 HTTP 协议版本。
  • proxy_set_header 设置代理请求中的头部信息。

最后,重启 Nginx。

sudo systemctl restart nginx

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Nginx配置SSL和WSS步骤介绍 - Python技术站

(0)
上一篇 2023年5月16日
下一篇 2023年5月16日

相关文章

  • nginx修改默认端口方法图文详解

    下面是针对“nginx修改默认端口方法图文详解”的完整攻略,包含两条示例说明。 一、前言 默认情况下,Nginx服务器会使用80端口进行HTTP通信,443端口进行HTTPS通信。由于80和443端口非常常用,因此有时候我们需要修改Nginx服务器的端口号,以避免端口冲突。在本文中,我们会详细讲解如何修改Nginx服务器端口号的方法。 二、步骤 打开Ngin…

    Nginx 2023年5月16日
    00
  • nginx ssl 卸载功能 第八章

      一 、证书自签发和给web 服务签发证书 .ssl 证书加密文件 ****************************** 建立私有CA openCA openssl 证书申请及签署步骤 1.生成证书申请请求 2.RA 效验 3.CA 签署 4. 获取证书 openssl 默认配置文件:/etc/pki/tls/openssl.cnf 1.创建所需要…

    2023年4月10日
    00
  • apache和nginx的区别

    1、nginx相对于apache的优点:轻量级,同样起web 服务,比apache占用更少的内存及资源抗并发,nginx 处理请 求是异步非阻塞的,而apache 则是阻塞型的,在高并发下nginx 能保持低资源低消 耗高性能高度模块化的设计,编写模块相对简单.社区活跃,各种高性能模块出品迅速 啊apache 相对于nginx 的优点:rewrite ,比n…

    Nginx 2023年4月11日
    00
  • Nginx为什么比Apache Httpd高效

      转载于:http://www.toxingwang.com/linux-unix/linux-basic/1712.html 一、进程、线程? 在回答nginx 为什么比apache更高效之前,必须要先熟悉、了解下概念:什么是进程,什么是线程,什么是程序 ,程序的运行方式? 进程:是具有一定独立功能的,在计算机中已经运行的程序的实体。在早期系统中(如li…

    Nginx 2023年4月11日
    00
  • Nginx + Keeplived双主测试

    Author: JinDate: 20130613Title: Nginx + Keeplived 双主测试 前言:一年多前做过一次测试,时间久了忘记了,现在又重新做一次 一、环境1、基本信息和规划pxe-svr.skylog.cn CentOS release 6.2 (Final)eth0 192.168.78.250vip 192.168.78.215…

    Nginx 2023年4月12日
    00
  • Nginx端口映射配置方法

    一、Nginx端口映射配置方法 1.安装Nginx 首先,我们需要安装Nginx服务器,如果您还没有安装过,请按照以下步骤操作: sudo apt-get update sudo apt-get install nginx 2.配置端口映射 假设您想将来自外部网络的访问流量转发到内部服务器的80端口上,请按照以下步骤进行配置: 在Nginx的默认配置文件中添…

    Nginx 2023年5月16日
    00
  • 3.Nginx常用功能介绍

    Nginx常用功能介绍 Nginx反向代理应用实例     反向代理(Reverse Proxy)方式是指通过代理服务器来接受Internet上的连接请求,然后将请求转发给内部网络上的服务器,并且从内部网络服务器上得到的结果返回给Internet上请求连接的客户端,此时代理服务器对外就表现为一台服务器。当一台代理服务器能够代理外部网络上的访问请求来访问内部网…

    Nginx 2023年4月11日
    00
  • 详解Nginx之Location配置(Location匹配顺序)

    关于“详解Nginx之Location配置(Location匹配顺序)”这一话题,我将从如下五个方面进行完整讲解: 概念介绍:什么是Location? Location匹配顺序:Nginx如何解析Location? Nginx Location如何配置? 实例说明1:匹配顺序 实例说明2:反向代理 1. 概念介绍 Location指的是nginx中一个匹配域…

    Nginx 2023年5月16日
    00
合作推广
合作推广
分享本页
返回顶部