Nginx配置SSL和WSS步骤介绍

yizhihongxing

下面是 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日

相关文章

  • LinuxMint/Ubuntu 安装Nginx+PHP7+Mysql

    1. 安装Nginx 要安装Nginx首先要将官方的项目源添加到系统中: 可以直接在/etc/apt/sources.list文件中添加, 也可以在/etc/apt/sources.list.d中新建一个nignx.list文件并将项目源添加进去. ## Replace $release with your corresponding Ubuntu rele…

    Nginx 2023年4月16日
    00
  • nginx搭建tcp代理服务器

    下面是详细的“nginx搭建tcp代理服务器”的完整攻略。其中,第一条示例是为了演示如何搭建一个基本的TCP代理服务器,第二条示例是为了演示如何在TCP代理服务器中开启SSL/TLS证书。 1. 搭建基本的TCP代理服务器 1.1 安装nginx 首先需要在你的服务器上安装nginx,具体的安装方法可以参考官方文档:Nginx官方文档 1.2 配置nginx…

    Nginx 2023年5月16日
    00
  • nginx使用反向代理支持node.js服务

    前言 Node.js自身能作为web服务器用,但是如果要在一台机器上开启多个Node.js应用该如何做呢?有一种答案就是使用nginx做反向代理。反向代理在这里的作用就是,当代理服务器接收到请求,将请求转发到目的服务器,然后获取数据后返回。 步骤 一、正常使用node.js开启web服务 var http = require(‘http’); http.cr…

    Nginx 2023年4月10日
    00
  • 如何配置Nginx的FastCGI缓存的HTTP头?

    配置Nginx的FastCGI缓存的HTTP头可以有效利用FastCGI缓存,提高网站的响应速度和性能。具体操作步骤如下: 1. 配置FastCGI缓存 在Nginx的配置文件中添加以下的FastCGI缓存配置: fastcgi_cache_path /var/cache/nginx levels=1:2 keys_zone=mycache:10m inac…

    Nginx 2023年4月20日
    00
  • Nginx服务器中处理AJAX跨域请求的配置方法讲解

    为了让大家更好地了解“Nginx服务器中处理AJAX跨域请求的配置方法”,我来给大家讲解一下完整攻略。 环境搭建 在开始之前,我们需要先安装好Nginx服务器,并配置好相关的环境。这里具体的安装和配置方法会略过,大家可以参考相关的文档进行操作。 处理AJAX跨域请求 在Nginx服务器中处理AJAX跨域请求,我们需要使用Nginx的CORS(Cross-Or…

    Nginx 2023年5月16日
    00
  • 服务发现之consul理论整理_结合Docker+nginx+Tomcat简单部署案例

    目录 一、理论概述 服务发现的概念简述 consul简述 二、部署docker+consul+Nginx案例 环境 部署 三、测试 四、总结 服务发现的概念简述 在以前使用的是,N台机器运行了N个服务,客户端必须要知道这N个服务各自的网络位置,以前的做法是配置在配置文件中,或者有些配置在数据库中。 问题: 需要配置N个服务的网络位置,加大配置的复杂性 每个服…

    Nginx 2023年4月13日
    00
  • Nginx ACCESS阶段 Satisfy 指令

    L:60     这里一定要记住 return 指令所对应的阶段 早与access 因此如果location 有return 的话 那么 deny可能都会失效  

    Nginx 2023年4月13日
    00
  • linux 把nginx加入到系统服务的方法

    linux 把nginx加入到系统服务的方法一。首先写一个shell脚本,脚本名称:nginx<pre>#! /bin/bash# chkconfig: 35 85 15 # description: Nginx is an HTTP(S) server, HTTP(S) reverseset -ePATH=/usr/local/sbin:/us…

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