nginx学习之路-nginx配置https服务器

文章目录

    • [1. 生成证书](#1. 生成证书)
    • [2. 配置证书](#2. 配置证书)
      • [1. 拷贝证书文件](#1. 拷贝证书文件)
      • [2. 修改conf/nginx.conf文件内容](#2. 修改conf/nginx.conf文件内容)
    • [3. 查看效果](#3. 查看效果)
      • [1. 重载配置](#1. 重载配置)
      • [2. 访问](#2. 访问)

1. 生成证书

在linux系统下执行,使用openssl命令。(windows环境也可以使用cmder)

shell 复制代码
# 1. 生成私钥 server2025.key(无密码保护)
openssl genpkey -algorithm RSA -pkeyopt rsa_keygen_bits:4096 -out server2025.key
# 2. 生成证书签名请求文件 server2025.csr
openssl req -new -key server2025.key -out server2025.csr -subj "/C=CN/O=demo/CN=server2025.demo.com"
# 3. 使用整数签名请求文件和私钥文件生成签名证书 server2025.crt
openssl x509 -req -in server2025.csr -signkey server2025.key -out server2025.crt -days 3650 -sha256
# 使用私钥文件server2025.key和证书文件server2025.crt,作为nginx的https的配置证书。

2. 配置证书

1. 拷贝证书文件

将私钥文件server2025.key和证书文件server2025.crt,分别拷贝到conf/cert/目录下。

2. 修改conf/nginx.conf文件内容

shell 复制代码
# 忽略其他配置
    server {
        listen       443 ssl;
        server_name  localhost;

        ssl_certificate      cert/server2025.crt;
        ssl_certificate_key  cert/server2025.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;
        }
    }

3. 查看效果

1. 重载配置

shell 复制代码
# 1. 先测试配置是否ok
nginx -t
# 2. 重载配置
nginx -s reload

2. 访问

浏览器访问:(其中192.168.3.9为本地的ipv4地址)

可以修改端口为18443后再验证:

shell 复制代码
    server {
        listen       18443 ssl;
        server_name  localhost;

        ssl_certificate      cert/server2025.crt;
        ssl_certificate_key  cert/server2025.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;
        }
    }

https://localhost

https://192.168.3.9

https://localhost:18443

https://192.168.3.9:18443

查看访问日志:

tail -f logs/access.log

shell 复制代码
127.0.0.1 - - [01/Jan/2025:21:48:52 +0800] "GET / HTTP/1.1" 200 615 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36"
192.168.3.9 - - [01/Jan/2025:21:50:00 +0800] "GET / HTTP/1.1" 200 615 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36"
127.0.0.1 - - [01/Jan/2025:21:50:31 +0800] "GET / HTTP/1.1" 200 615 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36"
192.168.3.9 - - [01/Jan/2025:21:50:52 +0800] "GET / HTTP/1.1" 200 615 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36"
相关推荐
专注VB编程开发20年8 小时前
python运行提速方案全解
java·linux·服务器
ylscode8 小时前
巨齿鲨突袭GitHub:5500余仓库沦陷,开源供应链安全防线再遭重创
运维·服务器·网络·安全·安全威胁分析
shy_snow8 小时前
Nginx解决跨域问题
运维·nginx
c++逐梦人8 小时前
epoll ET服务器(Reactor模式)
运维·服务器·php
丁劲犇8 小时前
使用TraeAI开发Web页面测试MSYS2 ucrt64 Qt MCP服务器
服务器·前端·c++·qt·mcp
菜鸡儿齐8 小时前
Future接口学习
java·服务器·开发语言
牛奔8 小时前
codebuddy 桌面版 如何配置自己的模型
运维·服务器·开发语言·php
nailwl8 小时前
原生态部署librenms
网络协议·http·https
学困昇9 小时前
Linux IPC 详解:匿名管道、命名管道、共享内存与信号量
linux·运维·服务器·c语言·c++·人工智能
TYKJ02310 小时前
服务器带宽的"独享"和"共享"到底差在哪?从原理到实测讲清楚
运维·服务器·后端