局域网https配置

艺帆风顺 发布于 2025-04-03 18 次阅读


局域网环境

  • linux 服务器(提供局域网web服务)

  • windows 电脑(作为客户端访问局域网内web服务)

目的

  • 自签ssl证书,配置局域网https访问

  • 我主要是为了解决Web Serial API只能再https下使用的问题

证书相关文件格式说明

  • .key:私钥文件

  • .pem:根证书公钥

  • .crt:域名证书公钥

  • .csr:请求域名证书用的证书

Linux服务器配置流程

  1. 创建证书目录:/root/cert,进入创建 root key

openssl genrsa -des3 -out rootCA.key 2048

根据提示输入密码,后续每次使用此特定密钥生成证书时都需要输入该密码

  1. 使用生成的密钥来创建新的根SSL证书。并将其保存为rootCA.pem,证书有效期为10年

openssl req -x509 -new -nodes -key rootCA.key -sha256 -days 3650 -out rootCA.pem

提示填写的字段大多都可以直接回车过就行了,只要Common Name字段需要填写内容,这是生成跟证书后导入到系统的证书名称,我填的是Local Certification

Country Name (2 letter code) []:
State or Province Name (full name) []:
Locality Name (eg, city) []:
Organization Name (eg, company) []:
Organizational Unit Name (eg, section) []:
Common Name (eg, fully qualified host name) []:Local Certification
  • 3.信任证书

#追加到信任列表
cat rootCA.pem >> /etc/pki/tls/certs/ca-bundle.crt
  • 4.创建生成域名ssl证书的前置文件
    在这里我生成一个 *.leetest.com 的通配域名证书。
    创建一个v3.ext文件,以创建一个X509 v3证书。注意我们指定了subjectAltName选项。

authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage=digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
subjectAltName=@alt_names

[alt_names]
DNS.1 = *.leetest.com
  • 5.生成域名ssl证书秘钥(leetest.csr、leetest.key)

openssl req -new -sha256 -nodes -out leetest.csr -newkey rsa:2048 -keyout leetest.key

这一步填写域名证书密钥需要的信息,会展示在浏览器的域名证书信息,其中最重要的是Common Name的内容,必须是对应需要https访问的域名的。

Country Name (2 letter code) []:CN
State or Province Name (full name) []:Shanghai
Locality Name (eg, city) []:Shanghai
Organization Name (eg, company) []:leetest
Organizational Unit Name (eg, section) []:leetest
Common Name (eg, fully qualified host name) []:*.leetest.com
  • 6.通过我们之前创建的根SSL证书颁发,创建出一个 *.leetest.com 的域名证书。输出是一个名为的证书文件server.crt(对应位置替换为自己的文件路径)

openssl x509 -req -in leetest.csr -CA [rootCA.pem路径] -CAkey [rootCA.key路径] -CAcreateserial -out leetest.crt -days 500 -sha256 -extfile v3.ext
  • 7.测试域名相关证书文件已创建成功

#证书(用户局域网windows客户端安装)
leetest.crt
#私钥
leetest.key
  • 8.配置nginx(配置后重启nginx生效)

server {
listen 443 ssl;
# 以www.lipten.link域名访问
server_name www.leetest.com

# 配置ssl域名证书
ssl_certificate [ssl证书路径]/leetest.crt;
ssl_certificate_key [ssl证书路径]/leetest.key;

index index.html index.php;
# 反向代理需要被访问的本地服务
location / {
proxy_pass http://localhost:8080;
}
...
}

客户端证书安装

  • 下载服务器上生成的leetest.crt证书

  • 双击证书开始安装(注意把证书安装到根信任证书列表,否则访问会提示证书不安全)

    image.png

  • 修改客户端host文件,添加测试域名host映射

#局域网服务器ip
192.168.1.12 www.leetest.com

windows修改host参考:https://www.html.cn/system/windows/51281.html

文献参考

https://www.ucloud.cn/yun/6832.html

最后编辑于 :2022.04.20 18:19:54

版权声明:本文内容来自简书:artCoding,遵循CC 4.0 BY-SA版权协议上原文接及本声明。本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。原文链接:https://www.jianshu.com/p/5e53423b239f如有涉及到侵权,请联系,将立即予以删除处理。在此特别鸣谢原作者的创作。此篇文章的所有版权归原作者所有,与本公众号无关,商业转载建议请联系原作者,非商业转载请注明出处。