十八比特 十八比特
⚡ 18bit DNS (opens new window)
🏠 主页
  • 🌐 网站
  • 📦 资源
  • 📝 教程
  • 📐 制表符
  • 🗃️ 分类
  • 🏷️ 标签
  • 🗄️ 归档
📃 文章日志
ℹ️ 关于

十八比特

风带来故事的种子,时间使之发芽
⚡ 18bit DNS (opens new window)
🏠 主页
  • 🌐 网站
  • 📦 资源
  • 📝 教程
  • 📐 制表符
  • 🗃️ 分类
  • 🏷️ 标签
  • 🗄️ 归档
📃 文章日志
ℹ️ 关于
  • 技术文档

  • 技术教程

    • 使用fluxion钓鱼获得wifi密码
    • 使用iPerf3测内网的网速
    • Windows配置Java环境变量
    • 使用qBittorrent完成自动追番功能
    • 解决Linux系统下挂载NTFS文件系统硬盘后权限777的问题并配置自动挂载
    • Ubuntu 搭建SMB服务
    • 从零开始配置Neovim
    • 使用自签SSL证书给内网配置HTTPS
      • 1. 生成自签证书
      • 2. 为nginx配置https
      • 3. 安装根证书
    • 修改WSL的网络模式为镜像模式
    • 续期过期的GPG密钥
    • SSH跳板机访问内网服务
  • Git工具

  • Nodejs

  • Linux安全

  • 技术
  • 技术教程
秋澪冬安
2023-12-08
目录

使用自签SSL证书给内网配置HTTPS

# 1. 生成自签证书

这里我使用的是一个开源工具 mkcert (opens new window) 来快速生成证书,安装环境是 linux 操作系统

# 1.1 安装mkcert

首先安装 libnss3-tools :

sudo apt install libnss3-tools

使用预先构建的二进制文件:

curl -JLO "https://dl.filippo.io/mkcert/latest?for=linux/amd64"
chmod +x mkcert-v*-linux-amd64
sudo cp mkcert-v*-linux-amd64 /usr/local/bin/mkcert

输入命令 mkcert -version 并且输出版本号表示安装成功:

root@ubuntu:~# mkcert -version
v1.4.4

# 1.2 生成ssl证书

要同时为多个域名或者 ip 地址生成证书,可以使用空格分隔开这些地址:

root@ubuntu:~/temp# mkcert 192.168.31.210 "*.a.com"
Created a new local CA 💥
Note: the local CA is not installed in the system trust store.
Run "mkcert -install" for certificates to be trusted automatically ⚠️

Created a new certificate valid for the following names 📜
 - "192.168.31.210"
 - "*.a.com"

Reminder: X.509 wildcards only go one level deep, so this won't match a.b.a.com ℹ️

The certificate is at "./192.168.31.210+1.pem" and the key at "./192.168.31.210+1-key.pem" ✅

It will expire on 7 March 2026 🗓

执行完命令之后,会在当前目录下生成两个文件,192.168.31.210+1.pem 和 192.168.31.210+1-key.pem ,分别是公钥和私钥。

# 2. 为nginx配置https

我们通过 nginx 为服务器上的本地服务做代理,并为该代理配置https,假设我们本地的服务地址是:http://127.0.0.1:9660 ,为这个地址简单写一个nginx配置文件:

server {
    listen 80; # 监听80端口
    listen 443 ssl; # 监听443端口,并启用https

    ssl_certificate /cert/192.168.31.210+1.pem; # 证书文件路径
    ssl_certificate_key /cert/192.168.31.210+1-key.pem; # 私钥文件路径

    # 配置域名
    server_name 192.168.31.210;

    # 配置https重定向
    if ($scheme = http) {
        return 301 https://$server_name$request_uri;
    }

    # 配置代理
    location / {
        proxy_pass http://127.0.0.1:9660;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

此时我们打开浏览器访问刚才配置的地址,可以看到浏览器还是提示不安全

这是因为这个 ssl 证书是我们自己签发的,需要在自己访问该网站电脑上安装根证书

# 3. 安装根证书

由于我是在 linux上生成的证书,在 windows 上访问的网站,所以我还需要在 windows 上安装根证书。

在 linux 输入以下命令可查看根证书的目录:

root@ubuntu:~# mkcert -CAROOT
/root/.local/share/mkcert

目录中有两个文件,rootCA-key.pem 和 rootCA.pem ,复制 rootCA.pem 到电脑上,并将 rootCA.pem 重命名为 rootCA.crt ,然后双击安装。

安装完成之后,重启浏览器,再次打开刚才的地址,可以看到一切就正常了。

至此,为内网服务配置https就完成了🎉🎉

#SSL#Nginx
上次编辑: 2024/08/30, 16:21:31

← 从零开始配置Neovim 修改WSL的网络模式为镜像模式→

最近更新
01
SSH跳板机访问内网服务
06-16
02
GPG 导出导入命令
06-16
03
从零开始的 All In One
06-14
更多文章>
Theme by Vdoing | Copyright © 2020-2025 十八比特 | 蜀ICP备2022002410号-1
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式