Qodes
Qodes
发布于 2025-08-16 / 10 阅读
0
0

给局域网ip自签证书

前言

局域网想使用PWA应用必须要使用https请求,因为服务器在局域网中,所以无法申请正常的证书,通过自签证书解决问题

具体操作

大多Linux操作系统都自带OpenSSL,为了方便快速,直接在Windows通过wsl安装Linux系统

开始操作!

1. 生成自签根 CA 证书 (ca.crt) 的命令

这个证书将作为您局域网内所有其他证书的信任根。

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

# 生成 CA 证书 (ca.crt),用于签署其他证书
# C: 中国, ST: 广东, L: 深圳, O: qodes, OU: it, CN: MyRootCA, emailAddress: qodes@qq.com
# 有效期 15 年 (15 * 365 = 5475 天)
openssl req -x509 -new -nodes -key ca.key -sha256 -days 5475 -out ca.crt \
-subj "/C=CN/ST=广东/L=深圳/O=qodes/OU=it/CN=MyRootCA/emailAddress=qodes@qq.com"

2. 生成服务器证书 (server.crt) 的命令

这个证书将用于您的 Nginx 服务器,并包含您指定的 IP 地址。

首先,我们需要创建一个配置文件 (server.cnf) 来定义 Subject Alternative Name (SAN),因为现代浏览器主要依靠 SAN 来匹配 IP 或域名。

创建 server.cnf 文件:

请将以下内容保存到名为 server.cnf 的文件中:

[req]
distinguished_name = req_distinguished_name
req_extensions = v3_req
prompt = no

[req_distinguished_name]
C = CN
ST = 广东
L = 深圳
O = qodes
OU = it
CN = 192.168.0.145 # Common Name 也设为IP,但SAN更重要
emailAddress = qodes@qq.com

[v3_req]
keyUsage = nonRepudiation, digitalSignature, keyEncipherment
extendedKeyUsage = serverAuth
subjectAltName = @alt_names

[alt_names]
IP.1 = 192.168.0.145 # 明确将IP地址添加到SAN

然后,运行以下命令生成服务器证书:

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

# 生成服务器证书签名请求 (CSR),使用上面创建的 server.cnf 文件
openssl req -new -key server.key -out server.csr -config server.cnf

# 使用之前生成的 MyRootCA (ca.crt) 签署服务器证书 (server.crt)
# 有效期 15 年
openssl x509 -req -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out server.crt -days 5475 -sha256 -extfile server.cnf -extensions v3_req

完成以上步骤后,您将获得三个重要文件:

  1. ca.key:您的 CA 私钥 (请妥善保管,切勿泄露)。

  2. ca.crt:您的 CA 证书 (需要安装到所有客户端设备上)。

  3. server.key:您的服务器私钥 (放置在 Nginx 服务器上)。

  4. server.crt:您的服务器证书 (放置在 Nginx 服务器上)。

部署与使用:

  • server.keyserver.crt 配置到您的 Nginx 服务器

  • ca.crt 导入到所有需要访问该网页的电脑和手机设备的“受信任的根证书颁发机构”中。

这样,您就可以通过 https://192.168.0.145 安全地访问您的网页了。


评论