资讯专栏INFORMATION COLUMN

实现局域网https域名访问内网服务

RiverLi / 4936人阅读

摘要:创建证书密钥,这一步填写域名证书密钥需要的信息,会展示在浏览器的域名证书信息,其中最重要的是的内容,必须是对应需要访问的域名的。实现局域网内其他设备可访问。

本文内容有两个部分:1.搭建本地https域名访问、2.实现局域网内其他设备可访问。

其中"搭建本地https域名访问"部分转载自《MacOS下自己创建根证书和域SSL证书实现https调试》文章。

搭建本地https域名访问

先实现本地可通过https及自定义域名访问到本地的服务,我的系统是MacOS,实现步骤如下:

    创建根ssl证书

    信任证书

    生成域ssl证书

    nginx使用证书并配置代理服务

    本地修改hosts测试

1. 创建根SSL证书

第一步是创建一个安全套接层(CA SSL)根证书。然后可以使用此根证书为可能为单个域生成的任意数量的证书签名。

CA,Catificate Authority,它的作用就是提供证书(即服务器证书,由域名、公司信息、序列号和签名信息组成)加强服务端和客户端之间信息交互的安全性,以及证书运维相关服务。

创建 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
2. 信任证书

打开【钥匙串访问】,左侧【钥匙串】选择【系统】,【种类】选择【证书】,然后把刚才生成的根证书导入进来(根证书是rootCA.pem)。

双击此证书,在【信任】设置中,SSL和X.509基本策略两项选择【始终信任】。

3. 生成域ssl证书

在这里我生成一个 *.lipten.link 的通配域名证书。

创建一个v3.ext文件,以创建一个X509 v3证书。注意我们指定了subjectAltName选项。

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

[alt_names]
DNS.1 = *.lipten.link

创建证书密钥,

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

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

Country Name (2 letter code) []:CN
State or Province Name (full name) []:Province
Locality Name (eg, city) []:City
Organization Name (eg, company) []:WIZ Technology Co. Ltd.
Organizational Unit Name (eg, section) []:WIZ Technology Co. Ltd.
Common Name (eg, fully qualified host name) []:*.lipten.link

证书签名请求通过我们之前创建的根SSL证书颁发,创建出一个 *.lipten.link 的域名证书。输出是一个名为的证书文件server.crt,

$ openssl x509 -req -in server.csr -CA [rootCA.pem路径] -CAkey [rootCA.key路径] -CAcreateserial -out server.crt -days 500 -sha256 -extfile v3.ext

注意 CA 和 CA Key 根据实际情况填写路径,我的 rootCA 证书根域SSL证书是分开的。

现在可以开始使用这张证书了,我服务器使用的是 nginx,这里贴下部分配置。

server {
    listen 80;
    listen 443 ssl;
    # 以www.lipten.link域名访问
    server_name ~^www.lipten.link$;
    
    # 配置ssl域名证书
    ssl_certificate     [ssl证书路径]/server.crt;
    ssl_certificate_key [ssl证书路径]/server.key;
    
    index index.html index.php;
    # 反向代理需要被访问的本地服务
    location / {
      proxy_pass http://localhost:8080;
    }
    ...
}

记得重启nginx

$ nginx -s reload

最后把本地hosts改一下,www.lipten.link指向本地地址

$ sudo vim /etc/hosts

添加以下配置

127.0.0.1   www.lipten.link

效果如下:

以上已经实现了https自定义域名访问本地服务,这么做就可以在满足很多需要指定域名访问才能调试的情况了,不用每次都发远程服务器啦。

实现局域网内其他设备可访问。

但这个方案只能在本地调试,有些第三方sdk还需要在手机对应的app里访问才能模拟真正的环境进行sdk的功能调试。

要想让其他设备也能以https域名在本地调试,只能是靠路由器hosts实现了,我们需要一台已经破解ssh的路由器,至于路由器怎么破解ssh就不在这里讲述了。

我手里有一台刷了Padavan固件的路由器,可以直接在web管理界面进行hosts配置:

左边栏选择内部网络(LAN) -> 选择DHCP服务器 -> 点击底部的自定义配置文件 "hosts"

重启路由器,把其他设备接入同一个局域网内,就可以通过https://www.lipten.link访问到内网的本地服务啦。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/6832.html

相关文章

  • 使用frp配置内网(穿透[保姆级教程])

    摘要:简介是一个开源简洁易用高性能的内网穿透和反向代理软件,支持等协议。是一个可用于内网穿透的高性能的反向代理应用,分为服务端和客户端,支持协议。是该条规则在服务端开放的端口号,自己填写并记录即可。 ...

    yeooo 评论0 收藏0
  • 内网穿透与反向代理,浅谈前后台分离

    摘要:小米球可以实现内网穿透,他是怎么实现内网穿透,主要是通过域名的反向代理,这也就是所谓的反向代理。其实,反向代理没那么高大上,不要被它吓到了。域名解析也是同样的道理,利用了的反向代理。 导读 自去年毕业来到杭州,想想也该有大半年了。本身是软件工程的科班出身,在校时理论掌握的还可以。但应用到实践当中去,有些还是不大理解,于是,不停地向带我的人请教,毕竟,三人行,必有我师焉。经过一段时间理论...

    developerworks 评论0 收藏0
  • 内网穿透与反向代理,浅谈前后台分离

    摘要:小米球可以实现内网穿透,他是怎么实现内网穿透,主要是通过域名的反向代理,这也就是所谓的反向代理。其实,反向代理没那么高大上,不要被它吓到了。域名解析也是同样的道理,利用了的反向代理。 导读 自去年毕业来到杭州,想想也该有大半年了。本身是软件工程的科班出身,在校时理论掌握的还可以。但应用到实践当中去,有些还是不大理解,于是,不停地向带我的人请教,毕竟,三人行,必有我师焉。经过一段时间理论...

    wangxinarhat 评论0 收藏0
  • 内网穿透与反向代理,浅谈前后台分离

    摘要:小米球可以实现内网穿透,他是怎么实现内网穿透,主要是通过域名的反向代理,这也就是所谓的反向代理。其实,反向代理没那么高大上,不要被它吓到了。域名解析也是同样的道理,利用了的反向代理。 导读 自去年毕业来到杭州,想想也该有大半年了。本身是软件工程的科班出身,在校时理论掌握的还可以。但应用到实践当中去,有些还是不大理解,于是,不停地向带我的人请教,毕竟,三人行,必有我师焉。经过一段时间理论...

    Yumenokanata 评论0 收藏0
  • 内网穿透与反向代理,浅谈前后台分离

    摘要:小米球可以实现内网穿透,他是怎么实现内网穿透,主要是通过域名的反向代理,这也就是所谓的反向代理。其实,反向代理没那么高大上,不要被它吓到了。域名解析也是同样的道理,利用了的反向代理。 导读 自去年毕业来到杭州,想想也该有大半年了。本身是软件工程的科班出身,在校时理论掌握的还可以。但应用到实践当中去,有些还是不大理解,于是,不停地向带我的人请教,毕竟,三人行,必有我师焉。经过一段时间理论...

    yy736044583 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<