自发证书使内网ip能够实现HTTPS访问(测试成功)

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


在公司内部网络研发过程中,是使用的内部服务器进行发布,因此访问的ip也是内部的ip。这时候如果想对应用采用https访问的话,就需要配置对应的证书,但是市面上的证书需要使用到域名,并且基本都是基于互联网进行的认证,这种场景,在实际内网环境下,就变得难受,既不方便切换https后的调试,也不方便验证是否https配置都能成功,基于上述的情况,想到在内部服务器上生成证书,并且证书的认证地址也指向到ip,经过查找相关资料,遇到同样问题的还不少,现给出经过实际验证可行的方法。

介绍

mkcert是一个使用go语言编写的生成本地自签证书的小程序,具有跨平台,使用简单,支持多域名,自动信任CA等一系列方便的特性可供本地开发时快速创建https环境使用。

下载

其最新版本地址如下:https://github.com/FiloSottile/mkcert/releases/latest

根据内部服务器的操作系统类型下载对应的windows/Linux/arm版本即可,我这里是x86的。

wget https://github.com/FiloSottile/mkcert/releases/download/v1.4.4/mkcert-v1.4.4-linux-amd64

安装

 # 赋予权限
 chmod +x mkcert-v1.4.4-linux-amd64
 # 将mkcert文件移动到bin目录下
 sudo cp mkcert-v1.4.4-linux-amd64 /usr/local/bin/mkcert
 # 安装证书
 mkcert -install
 

生成证书

 # 得到证书的根目录,将该目录下的rootCA.pem文件下载,将生成的证书下载到需要访问该ip的pc机上备用
 mkcert -CAROOT
 # 将可信ip写入,并生成对应的ssl证书,执行中可能会要求输入密码,需要记住该密码,后续配置https时会用到
 mkcert localhost 127.0.0.1 ::1 192.168.1.99
 

Nginx证书

# nginx部署需要crt和key文件,因此也需要通过mkcert生成的文件来进行转换
openssl x509 -in localhost+3.pem -out localhost+3.crt
openssl rsa -in localhost+3-key.pem -out localhost+3.key

# 将生成的这两个文件,复制到nginx的conf目录下,并配置nginx.conf

#请填写证书文件的相对路径或绝对路径
ssl_certificate conf.d/maruifu_cn/ssl/localhost+3.crt;
#请填写私钥文件的相对路径或绝对路径
ssl_certificate_key conf.d/maruifu_cn/ssl/localhost+3.key;
版权声明:本文内容来自个人博客:小马哥,遵循CC 4.0 BY-SA版权协议上原文接及本声明。本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。原文链接:http://maruifu.cn/article/280如有涉及到侵权,请联系,将立即予以删除处理。在此特别鸣谢原作者的创作。此篇文章的所有版权归原作者所有,与本公众号无关,商业转载建议请联系原作者,非商业转载请注明出处。