怎样在局域网中给网站作ssl认证,使其能以https协议访问(转)
如果要在局域网达到效果需要满足以下几点要求:
1. 证书由可信任的CA机构颁发
2. 证书在有效期
3. 访问地址和证书的认证地址一致
说明:
1. 需要在局域网内构建CA机构
2. 证书的有效期建议设置长一点,毕竟在内网使用,升级比较麻烦
3. 生成的自签证书其中包含的域名或ip要和浏览器中访问的域名或ip保持一致
2.1 mkcert
mkcert是一个使用go语言编写的生成本地自签证书的小程序,具有跨平台,使用简单,支持多域名,自动信任CA等一系列方便的特性可供本地开发时快速创建https环境使用。
mkcert的浏览器根据操作系统的不同生效也不同:
mkcert supports the following root stores:
- macOS system store
- Windows system store
- Linux variants that provide either
update-ca-trust
(Fedora, RHEL, CentOS) orupdate-ca-certificates
(Ubuntu, Debian, OpenSUSE, SLES) ortrust
(Arch)
- Firefox (macOS and Linux only)
- Chrome and Chromium
- Java (when
JAVA_HOME
is set)
我这里用windows演示,google浏览器可以支持,firefox不支持
2.1.1安装
由于go的跨平台的特性,所以直接安装即可
https://github.com/FiloSottile/mkcert/releases
我这里已windows安装包为示例

2.1.2 使用
- 下载后将mkcert-v1.4.3-windows-amd64.exe更名为mkcert.exe(为了在控制台少打字)
在控制台输入 mkcert 可看到

其中明确了 -install -uninstall 的语义
- 将CA证书加入本地可信CA
在控制台 mkcert -install,就帮助我们将mkcert使用的根证书加入了本地可信CA中,以后由该CA签发的证书在本地都是可信的。 - 查看Windows的可信CA列表
IE浏览器中,选择设置==>Internet选项==>内容==>证书==>mkcert证书

至此标识当前CA已被信任
2.2 自签证书
- 生成自签证书
- 在控制台中命令行输入: mkcert 192.168.99.177 192.168.99.78

这里我的ip是177所以以此为例。如果有多个ip地址用空格隔开,表示该证书支持多个ip的认证,也就是浏览器访问地址的ip。
控制台中表明生成了192.168.99.177+1.pem证书文件和192.168.99.177+1-key.pem私钥文件
- 使用自签证书
- 在nginx中配置ssl用于测试
server { listen 9888 ssl; ssl_certificate E:\Nginx1.15.11\conf\ssl\mkcert\192.168.99.177+1.pem; ssl_certificate_key E:\Nginx1.15.11\conf\ssl\mkcert\192.168.99.177+1-key.pem; location / { root E:/; } }
这里开启9888的ssl端口。映射E盘来做测试,E盘根目录下有一张名为hzw.PNG的图片。 - 现在访问 https://192.168.99.177/hzw.PNG会出现警告⚠页面
2.3 发放证书
- 现在局域网访问测试地址会出现警告页面,我们需要将我们的CA证书发放给局域网内其他的用户,其他用户安装即可。
- 查找本机的CA证书
- 命令行查看mkcert的CA证书所在位置
mkcert -CAROOT
C:\Users\fanya\AppData\Local\mkcert - 打开C:\Users\fanya\AppData\Local\mkcert其中包含rootCA.pem证书文件和rootCA-key.pem密钥文件。我们将
rootCA.pem
拷贝一个副本,并命名为rootCA.crt
(因为windows并不识别pem
扩展名)
2021/08/02 15:08 2,484 rootCA-key.pem
2021/08/02 15:08 1,797 rootCA.crt
2021/08/02 15:08 1,797 rootCA.pem
- 将rootCA.crt拷贝给局域网的其他人,进行安装
2.4 安装证书
双击rootCA.crt

安装证书==>证书存储==>受信任的根证书颁发凭证

2.5 测试
浏览器访问 https://192.168.99.177:9888/hzw.PNG

可以看到左上角变成安全标识,警告⚠页面也不会弹出。至此局域网就的ssl认证就完成了。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 周边上新:园子的第一款马克杯温暖上架
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
· 使用C#创建一个MCP客户端