自签 IP 证书 OpenSSL:解决内网 HTTPS 无域名访问问题

内网使用自签证书搭建https服务器 1.生成证书 因为是内网环境,所以自签发证书即可,也是免费的。如果是外网环境,请使用云服务商提供的证书。 本文主要介绍内网,使用ip访问的系统,配置https服务器; 创建配置文件 openssl.cnf: [req] distinguished_name = req_distinguished_name req_extensions = v5_req [req_distinguished_name] countryName = Country Name (2 l... 阅读详情
AI摘要

使用WebRTC需SSL证书,可在局域网自签。IP地址证书适用于直接通过IP访问的服务。本文介绍在windows service系统下,通过下载、安装OpenSSL,配置环境变量,使用一键生成脚本自签IP证书,解决内网HTTPS无域名访问问题。

背景

使用WebRTC需要SSL证书,所以我们需要在局域网自签SSL证书。

在 SSL/TLS 证书体系中,IP 地址证书(即证书主题中包含 IP 而非域名)是一种特殊类型的证书,适用于直接通过 IP 地址访问的服务(如内网 API、IoT 设备等)。

windows service 系统

前提准备

下载openssl

电脑需要安装openssl

下载地址:Win32/Win64 OpenSSL Installer for Windows - Shining Light Productions

找到下图圈的下载,版本不重要,选对Win64 OpenSSL,不要选Light

 

安装openssl

提示这个就是缺失环境,弹出的网站自动下载安装就好了

 

一路下一步就行

 

出现这个就完成了

 

配置环境变量

windows搜索打开,输入环境,选择编辑账户的环境变量

 

选中这行点击编辑

 

点击新建

如果是默认安装,路径是:C:\Program Files\OpenSSL-Win64\bin

如果你自己选择了安装路径,根据实际情况填写就好了

 

脚本

一键生成脚本,根据需要修改《配置区域(根据实际修改)》

生成的证书会保存在CERT_DIR配置的路径中

@echo off
setlocal enabledelayedexpansion

:: =============================================
:: 全自动证书生成脚本
:: =============================================
title 全自动证书生成工具 v3.0

:: 配置区域(根据实际修改)
set "CERT_DIR=D:\Progra~2\SRS\cert"
set "CA_NAME=Srs Root CA"
set "SERVER_CN=192.168.19.103"
set "DAYS=3650"

:: 文件路径
set "CA_KEY=%CERT_DIR%\ca-key.pem"
set "CA_CRT=%CERT_DIR%\ca-crt.pem"
set "CA_CRT_DER=%CERT_DIR%\ca-crt.der"
set "CA_CRT_CRT=%CERT_DIR%\ca-crt.crt"
set "SERVER_KEY=%CERT_DIR%\server.key"
set "SERVER_CSR=%CERT_DIR%\server.csr"
set "SERVER_CRT=%CERT_DIR%\server.crt"
set "CHAIN_PEM=%CERT_DIR%\chain.pem"

:: 检查OpenSSL
where openssl >nul 2>&1 || (
    echo [错误] OpenSSL未安装或未加入PATH
    echo 请安装OpenSSL并添加至系统PATH
    pause
    exit /b 1
)

:: 创建目录
if not exist "%CERT_DIR%" (
    mkdir "%CERT_DIR%"
    if errorlevel 1 (
        echo [错误] 无法创建目录 %CERT_DIR%
        pause
        exit /b 1
    )
)

:: 生成CA配置文件(关键修复1:完整DN配置)
(
echo [req]
echo distinguished_name = dn
echo req_extensions = v3_ca
echo prompt = no
echo.
echo [dn]
echo C = CN
echo ST = Zhejiang
echo L = Zhuji
echo O = Jws
echo OU = Jws
echo CN = %CA_NAME%
echo emailAddress = jws@jws.com
echo.
echo [v3_ca]
echo basicConstraints = critical,CA:TRUE,pathlen:0
echo keyUsage = critical,keyCertSign,cRLSign
echo subjectKeyIdentifier = hash
) > "%CERT_DIR%\ca.cnf"

:: 1. 生成CA证书(完全自动化)
echo 正在生成CA根证书...
openssl req -x509 -newkey rsa:4096 -days %DAYS% -nodes ^
    -config "%CERT_DIR%\ca.cnf" ^
    -keyout "%CA_KEY%" ^
    -out "%CA_CRT%" ^
    -extensions v3_ca >nul 2>&1

if not exist "%CA_CRT%" (
    echo [错误] CA证书生成失败!
    goto CLEANUP
)

:: 2. 生成多平台格式
openssl x509 -in "%CA_CRT%" -outform DER -out "%CA_CRT_DER%" >nul 2>&1
openssl x509 -in "%CA_CRT%" -out "%CA_CRT_CRT%" -outform PEM >nul 2>&1

:: 3. 生成服务器配置文件(关键修复2:独立配置)
(
echo [req]
echo distinguished_name = dn
echo req_extensions = v3_req
echo prompt = no
echo.
echo [dn]
echo C = CN
echo ST = Zhejiang
echo L = Zhuji
echo O = Jws
echo OU = Jws
echo CN = %SERVER_CN%
echo emailAddress = jws@jws.com
echo.
echo [v3_req]
echo basicConstraints = CA:FALSE
echo keyUsage = digitalSignature,keyEncipherment
echo extendedKeyUsage = serverAuth
echo subjectAltName = IP:%SERVER_CN%
) > "%CERT_DIR%\server.cnf"

:: 4. 生成服务器证书(完全自动化)
echo 正在生成服务器证书...
openssl req -new -newkey rsa:2048 -nodes ^
    -config "%CERT_DIR%\server.cnf" ^
    -keyout "%SERVER_KEY%" ^
    -out "%SERVER_CSR%" >nul 2>&1

if not exist "%SERVER_CSR%" (
    echo [错误] CSR生成失败!
    goto CLEANUP
)

openssl x509 -req -days %DAYS% ^
    -in "%SERVER_CSR%" ^
    -CA "%CA_CRT%" ^
    -CAkey "%CA_KEY%" ^
    -CAcreateserial ^
    -out "%SERVER_CRT%" ^
    -extensions v3_req ^
    -extfile "%CERT_DIR%\server.cnf" >nul 2>&1

if not exist "%SERVER_CRT%" (
    echo [错误] 服务器证书生成失败!
    goto CLEANUP
)

:: 5. 生成证书链
type "%SERVER_CRT%" "%CA_CRT%" > "%CHAIN_PEM%"

:: 自动导入到本机(Windows)
echo 正在自动导入CA证书...
certutil -f -addstore "Root" "%CA_CRT_DER%" >nul 2>&1

:: 显示结果
echo.
echo ============== 生成成功 ==============
echo [CA证书]
echo Windows安装: %CA_CRT_DER%
echo Android安装: %CA_CRT_CRT%
echo.
echo [服务器证书]
echo 私钥: %SERVER_KEY%
echo 证书: %SERVER_CRT%
echo 证书链: %CHAIN_PEM%
echo.
echo [验证命令]
echo openssl verify -CAfile "%CA_CRT%" "%SERVER_CRT%"
echo.

:CLEANUP
del "%CERT_DIR%\ca.cnf" 2>nul
del "%CERT_DIR%\server.cnf" 2>nul
del "%CERT_DIR%\.srl" 2>nul
pause

把上方代码复制到txt文档,修改后缀名为bat

 

然后就是双击666我的宝贝,出现下方界面就算成功

 

去CERT_DIR就可以看到证书文件了

博客地址:自签 IP 证书 OpenSSL:解决内网 HTTPS 无域名访问问题-JavaLYG

 

openssl给内网IP生成ca证书(ssl证书) 阅读详情

相关推荐

OpenSSL 自签证书详解

数字证书的基本概念 数字证书的标准 X.509版本号:指出该证书使用了哪种版本的X.509标准,版本号会影响证书中的一些特定信息 序列号:由CA给予每一个证书分配的唯一的数字型编号,当证书被取消时,实际上是将此证书序列号放入由CA签发的CRL(Certificate Revocation List证书作废表,或证书黑名单表)中。这也是序列号唯一的原因 签名算法标识符:用来指定CA签署证书时所使用的签名算法,常见算法如RSA 签发者信息:颁发证书的实体的 X.500 名称信息。它通常为一个 CA 证书的有效

云原生运维 7456

内网Https 自签Https证书 配合Tomcat 实现内网Https详细图文

转载地址:https://www.cnblogs.com/ChromeT/p/11122480.html 目录 开始制作CA根证书 创建私钥 创建证书请求 生成CA自签证书 制作服务器证书 向 本地keystore 密钥库中导入证书 导入服务器证书 单独导出 CA 作为信任证书 客户端安装证书: Tomcat 服务器导入证书 修改默认的http端口和https端口 ...

爱自在的专栏 4422

使用OpenSSL自签名证书解决内网HTTPS访问的安全警告问题

本文详细介绍了如何使用OpenSSL生成包含SAN扩展的自签名证书,以解决内网通过IP地址进行HTTPS访问时浏览器提示“不安全”警告的问题。通过分步教程,指导用户从生成证书、配置Nginx到将证书导入客户端受信任根证书库,实现内网HTTPS的安全访问。

m3n5b7v8c9x的博客 684

局域网https自签名教程

们的客户是在内网环境里面,所以就只能用自签名证书来搞,我一想这还不容易,就迅速的百度了一下随便找了个文章开始照猫画虎,很快就弄完了,但是弄完后发现还是有问题,而且https 还是报不安全,1、基于nginx版本1、证书生成。

Stestack的博客 6315

内网HTTPS无域名访问:OpenSSL自签IP证书完整实践

HTTPS 的核心是 TLS 握手中的证书身份校验:客户端会拿访问目标与 X.509 证书中的 SAN 标识符比对,域名对应 DNS 条目,IP 地址必须写成 SAN 的 IP 类型,而不是仅放在 CN 字段。理解这一原理后,内网服务在无域名、仅有 IP 的场景下也能通过自签 CA 和 OpenSSL 建立可校验的加密链路。自签 IP 证书的价值在于以较低改造成本满足内网 HTTPS、接口调用和测试环境的证书校验需求,同时通过根证书信任降低多客户端导入成本。典型应用包括内网管理后台、API 网关、容器服务间

weixin_42539414的博客 288

OpenSSL生成自签IP证书:内网HTTPS安全访问实战指南

SSL/TLS证书是保障网络通信安全的核心机制,它基于公钥加密技术,通过数字签名实现身份认证与数据加密。其工作原理涉及证书颁发机构(CA)的信任链,确保客户端与服务器间建立可信连接。在开发测试与内网部署场景中,常需为仅有IP地址的服务启用HTTPS,而公共CA签发的证书通常要求域名,这催生了自签名证书方案。自签IP证书通过将IP地址写入证书的SAN扩展字段,并让客户端信任自建的根证书,实现了内网环境的加密通信,解决了浏览器安全警告问题。本文以OpenSSL为工具,详细解析了生成、配置与信任IP证书的全流程,

weixin_28715953的博客 309

Nginx解决通过openssl自签名证书访问Https报不安全告警的问题

定义自签名证书扩展文件(解决chrome安全告警)。在默认情况下生成的证书一旦选择信任,在 Edge, Firefox 等浏览器都显示为安全,但是Chrome仍然会标记为不安全并警告拦截,这是因为 Chrome 需要证书支持扩展 Subject Alternative Name, 因此生成时需要特别指定 SAN 扩展并添加相关参数,将下述内容放到一个文件中,命名为private.ext。

冰之杍的博客 8182

【openssl生成自签证书】

配置服务器时,需将私钥和证书文件部署到Web服务器(如Nginx、Apache、IIS等)的相应配置目录中。字段的局限性,确保现代浏览器和应用程序能正确验证证书的适用范围。自签证书(Self-Signed)默认不被浏览器信任。通过以上方法,可确保浏览器地址栏不再显示“不安全”提示。执行后会提示设置密码,记住这个密码后续会用到。以下是使用 OpenSSL 生成自签证书(含。)是 X.509 证书的一个扩展字段,用于。按此步骤操作后,证书将兼容所有现代浏览器。:仅限本地开发或内网环境。(主题备用名称,简称。

liweiweili126的博客 2926

使用OpenSSL自签名证书解决内网HTTPS安全访问问题

本文详细介绍了如何利用OpenSSL生成包含SAN扩展的自签名证书,以解决内网环境中HTTPS访问的安全警告问题。通过分步指导生成证书、配置Nginx服务器以及在客户端浏览器中安装信任证书,帮助开发者和运维人员在内网或开发测试环境中快速建立安全的HTTPS连接,消除浏览器的不安全提示。

bash7scripter的博客 1177

Tips-自签SSL证书(适用于内网IP)

本文详细介绍了使用OpenSSL为Nginx创建自签名证书实现HTTPS安全访问的完整步骤。主要内容包括:1)创建CA根证书和私钥;2)生成服务器证书私钥和CSR;3)使用根证书签发服务器证书;4)配置证书扩展信息(如域名/IP、密钥用途等);5)最终证书验证方法。通过openssl命令生成有效期10年的证书,并特别强调了CN字段必须与服务器域名/IP一致,否则证书无效。该指南适用于需要快速搭建HTTPS测试环境的开发者,提供了一条完整的证书签发链方案。 写于2025/04/16

ZZHow Blog 942

CISCO SG250 交换机HTTPS内网IP、域名混合证书openssl制作教程

证书这玩意儿就是坑,放到CISCO上。天坑! 国外大佬教程版本: https://severehalestorm.net/?p=54 感谢上天这个大佬指点,再度吐槽CISCO的官方文档就是一坨粑粑。 成果截图: 正文开始。。。 1.生成自签名根秘钥 openssl genrsa -out LocalRootCA.key 2048 2.生成自签名根证书 openssl req -sha256 -new -nodes -x509 -days 3650 -key LocalRootCA.key -out

醉陌浮生,乱谜浊 2028

内网使用openssl自签名证书开启https连接,同时解决chrome浏览器中的不安全访问

1、在内网中开启https访问,使用ip,请直接看第二步。如果是外网域名的话,建议直接去从 阿里云或者其他的网站中直接用权威机构颁发的证书。地址 2、请先安装OpenSSL 3、生成证书 创建根证书 新建anxinCA.cnf文件并输入以下内容: [ req ] distinguished_name = req_distinguished_name x509_extensions = root_ca [ req_distinguished_name ] # 以下内容可随意填写 .

my_interface的博客 1万+

内网大模型服务HTTPS配置指南:OpenSSL自签名证书实战

HTTPS作为保障网络通信安全的核心协议,通过SSL/TLS加密技术实现数据传输的机密性与完整性。其工作原理基于非对称加密和数字证书体系,确保客户端与服务器间的身份认证与安全会话建立。在技术价值上,HTTPS不仅是公网服务的标准配置,对于内网环境同样至关重要,它能满足现代浏览器API、移动端SDK及命令行工具对安全连接的强制要求,并为开发测试提供与生产环境一致的安全基线。在应用场景中,内网部署的大模型服务(如Ollama、ChatGLM)常需通过反向代理暴露API,而自签名证书正是解决内网IP或自定义域名无

weixin_33946020的博客 469

内网IP,http改为https,Nginx 的解决方法

本文介绍了两种为内网IP配置HTTPS的方法:1)为Nginx生成自签名证书,包括创建配置文件、生成证书、配置Nginx并重启服务;2)在Java/SpringBoot中使用自签名证书,包括将证书转换为PKCS12格式、配置application.properties文件并设置HTTP重定向。两种方法都需要手动信任证书,适用于内网环境的安全通信需求。

fengtimo1219的博客 1299

为IP地址配置HTTPS证书:详解OpenSSL关键配置与避坑指南

HTTPS作为保障网络通信安全的核心协议,其基础依赖于SSL/TLS证书对服务器身份的验证。传统上,证书通过域名(DNS)进行绑定,但在开发测试、内网服务或IoT设备等场景中,直接使用IP地址访问HTTPS服务的需求十分普遍。现代浏览器遵循CA/Browser Forum的严格规范,已不再依赖证书的Common Name字段,转而强制要求使用subjectAltName扩展来标识服务器。这一机制要求IP地址必须以特定的“IP:”格式明确声明在SAN中,否则将触发证书无效警告。理解并正确配置subjectAl

weixin_33805743的博客 423

内网环境下基于OpenSSL自签证书实现SpringCloud微服务HTTPS加密通信

本文详细介绍了在内网环境中,如何利用OpenSSL工具生成自签证书,并为SpringCloud微服务集群配置HTTPS加密通信。内容涵盖从创建包含SAN扩展的证书配置文件、执行关键OpenSSL命令生成证书,到在SpringCloud Gateway中配置SSL并启用8443端口的完整流程。同时,文章探讨了微服务间Feign调用、Gateway路由转发及注册中心集成HTTPS的进阶配置方案与注意事项,为构建安全的内网微服务架构提供实践指南。

wdx012345的博客 805

使用OPENSSL自签名证书为Streamlit应用配置HTTPS访问

本文详细介绍了如何使用OPENSSL生成自签名证书,并为Streamlit应用配置HTTPS访问。通过分步指南和常见问题排查,帮助开发者快速解决浏览器安全警告问题,确保局域网内安全访问。文章还提供了高级技巧如自动化脚本和mkcert工具的使用方法。

weixin_29297127的博客 550

内网HTTPS实战:基于OpenSSL自建CA与双证书方案

HTTPS协议通过SSL/TLS为网络通信提供机密性、完整性和身份验证,是保障数据传输安全的核心技术。其原理基于非对称加密与数字证书体系,由受信任的证书颁发机构(CA)验证服务器身份。在公网环境中,Let's Encrypt等公开CA被广泛使用;而在内网场景下,自建私有CA能实现完全可控、零成本且支持任意内网域名的证书管理,尤其适用于开发测试、内部系统及微服务架构。通过OpenSSL工具链,我们可以搭建根CA与中间CA,并采用更安全的双证书策略——将签名证书与加密证书分离,以提升密钥管理的灵活性与安全性。本

weixin_33646989的博客 358
上一篇: java一行一行读取txt内容
下一篇: SSL证书自动续期方案设计:DNS-01、ACME签发与Agent部署实战
Lsetea
博客等级 码龄10年 24粉丝 120原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Lsetea

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值