no-image

局域网https配置

https://www.jianshu.com/p/5e53423b239f
局域网环境
linux 服务器(提供局域网web服务)
windows 电脑(作为客户端访问局域网内web服务)
目的
自签ssl证书,配置局域网https访问
我主要是为了解决Web Serial API只能再https下使用的问题
证书相关文件格式说明
.key:私钥文件
.pem:根证书公钥
.crt:域名证书公钥
.csr:请求域名证书用的证书
Linux服务器配置流程
创建证书目录:/root/cert,进入创建 root key
openssl genrsa -des3 -out rootCA.key 2048
根据提示输入密码,后续每次使用此特定密钥生成证书时都需要输入该密码

使用生成的密钥来创建新的根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

作者:artCoding
链接:https://www.jianshu.com/p/5e53423b239f
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。