x509: cannot validate certificate for xxx because it doesn't contain any IP SANs

x509,cannot,validate,certificate,for,xxx,because,it,doesn,contain,any,ip,sans · 浏览次数 : 728

小编点评

## 解决 x509 错误方法:添加 SubjectAltNameclinet端 以下方法可以解决 x509 错误问题: **方法一:不使用 IP SANs** 1. 修改 server 配置,添加 `subjectAltNameclinet端` 字段,例如: ``` subjectAltNameclinet端 = "your-domain.com" ``` 2. 在 client 端设置 `InsecureSkipVerify` 为 `true`,例如: ```go client := &http.Client{ Transport: &http.Transport{\ TLSClientConfig: &tls.Config{ InsecureSkipVerify: true, }, }, } ``` **方法二:通过修改 hosts 文件** 1. 将 `your-domain.com` 添加到 `hosts` 文件中,例如: ``` your-domain.com your-domain-name.com ``` 2. 在 client 端设置 `InsecureSkipVerify` 为 `false`,例如: ```go client := &http.Client{ Transport: &http.Transport{\ TLSClientConfig: &tls.Config{ InsecureSkipVerify: false, }, }, } ``` **注意:** * 使用方法一需要修改 server 配置,可能需要与服务器管理员合作。 * 使用方法二需要修改 client 端的设置,可能会影响安全。 * 使用方法二需要确保 `your-domain.com` 的域名注册在 DNS 中。

正文

项目中有时候需要访问https网站,但如果该网站使用的是自建证书,那client端验证server端证书时,有时候会报错:

x509: cannot validate certificate for xxx because it doesn't contain any IP SANs

碰到这种情况,可以使用下面的方法来解决:

  • server端,在生成证书时添加subjectAltName
  • clinet端,有两种方法:
    • 不适用IP直接方法,通过修改hosts的方式进行域名映射
    • 不进行https的双向验证,以go为例:
client := &http.Client{Transport: &http.Transport{
	TLSClientConfig: &tls.Config{InsecureSkipVerify: true},
}}

孟斯特

声明:本作品采用署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)进行许可,使用时请注明出处。
Author: mengbin
blog: mengbin
Github: mengbin92
cnblogs: 恋水无意


与x509: cannot validate certificate for xxx because it doesn't contain any IP SANs相似的内容:

x509: cannot validate certificate for xxx because it doesn't contain any IP SANs

项目中有时候需要访问https网站,但如果该网站使用的是自建证书,那client端验证server端证书时,有时候会报错: > x509: cannot validate certificate for xxx because it doesn't contain any IP SANs 碰到这种情

【Azure 应用服务】应用代码中需要使用客户端证书访问服务接口,部署在应用服务后报错不能找到证书(Cannot find the X.509 certificate)

问题描述 在应用中,需要访问另一个服务接口,这个接口需要使用客户端证书进行认证。在代码中使用 System.Security.Cryptography.X509Certificates 加载Window系统中 Current User\My 下的证书。 然后把证书通过App Service门户页面上

【Azure 环境】把OpenSSL生产的自签名证书导入到Azure Key Vault Certificate中报错

问题描述 通过本地生成的自签名证书导入到Azure Key Vault Certificate报错。 错误信息 the specified PEM X.509 certificate content can not be read. Please check if certificate is in

【Azure App Service】.NET代码实验App Service应用中获取TLS/SSL 证书 (App Service Linux/Linux Container)

在前一篇文章中,我们是把.NET 8应用读取SSL证书(X509)示例部署在App Service Windows环境中,那么如果部署在Linux环境,以及Linux Container中呢? 根据前文中的第一种方法,直接在把证书文件包含在源文件中,通过相对路径读取证书文件的方式,经测试,可以正常工

【Azure App Service】.NET代码实验App Service应用中获取TLS/SSL 证书 (App Service Windows)

在使用App Service服务部署业务应用,因为有些第三方的接口需要调用者携带TLS/SSL证书(X509 Certificate),在官方文档中介绍了两种方式在代码中使用证书: 1) 直接使用证书文件路径加载证书 new X509Certificate2 2) 从系统的证书库中通过指纹加载...

【Azure 服务总线】使用Azure Service Bus 时,出现证书错误: 所使用的证书具有无法验证的信任链

问题描述 在Azure中连接 Service Bus 服务发送消息时发生证书错误,抛出证书异常消息: 或 The X.509 certificate CN=servicebus.chinacloudapi.cn, OU=Azure, O=Shanghai Blue Cloud Technology

Nginx SSL证书更新及密码套件更新

一、域名更换证书 ssl证书一般包括证书文件crt、cer、pem、pfx和私钥文件key。 CER、CRT、PEM 和 PFX 是不同的证书文件格式,它们之间存在一些区别: CER (DER 编码) CER 文件是使用 DER 编码的证书文件格式。 CER 文件通常包含单个 X.509 证书。 C