三种方法解决http: TLS handshake error from [::1]:51325: remote error: tls: unknown certificate

只要思想不滑坡,办法总比困难多

目录

太长不看版

方法一

方法二

方法三

参考资料


太长不看版

方法一

以vue前端为例,修改向后端发请求的协议为http,从而绕过https。

VUE_APP_BASE_URL = https://localhost:8080/api/

改为

VUE_APP_BASE_URL = http://localhost:8080/api/

方法二

更换浏览器,但这不一定奏效,我之前是把谷歌浏览器换成Edge就可以了,但有同学还是不行。

方法三

禁用TLS,将ListenAndServeTLS更改为ListenAndServe,并删除对TLS证书和密钥的引用。

以go后端为例。

将main.go中的

	go func() {
		if err := srv.ListenAndServeTLS("ssl/cert.crt", "ssl/cert.key"); err != nil {
			log.Fatal("ListenAndServeTLS: ", err)
		}
	}()

改为

	go func() {
		if err := srv.ListenAndServe(); err != nil && err != http.ErrServerClosed { // 更改此行,移除TLS
			log.Fatal("ListenAndServe: ", err)
		}
	}()

如果本文对您有帮助,欢迎点赞!评论!打赏!


参考资料

HTTP(超文本传输协议)和HTTPS(超文本传输协议安全)都是用于在Web浏览器和服务器之间传输信息的协议。它们的主要区别在于HTTPS提供了对传输的数据的加密,而HTTP则没有。

TLS握手错误通常是由于客户端和服务器之间的证书问题导致的。remote error: tls: unknown certificate错误表明客户端无法识别服务器的TLS证书。这可能是因为证书过期、证书被吊销或证书与服务器的域名不匹配等原因导致的。

以下是一些可能的解决方案:

  1. 检查证书是否过期或被吊销:你需要确保服务器上的证书是有效的并且没有过期。

  2. 使用正确的证书:请确保服务器上配置的证书是适用于当前域名的。证书必须与你的服务器域名相匹配。

  3. 在客户端信任证书:如果你在本地环境中使用自签名证书,那么可能需要在客户端系统中将该证书添加为受信任的证书。但是请注意,这种做法通常仅用于开发环境,并不推荐在生产环境中使用。

  4. 检查TLS版本:确保客户端和服务器使用的TLS版本兼容。有时候,由于版本不匹配,可能会出现握手错误。

  5. 考虑使用专业的证书:如果这是一个生产环境,并且你使用的是自签名证书,那么可能会想要考虑从一个受信任的证书颁发机构获取证书。

  6. 重启服务:在对服务器进行配置更改后,可能需要重新启动服务以使更改生效。

  7. 详细的调试信息:查看服务器和客户端的日志以获得更详细的错误信息,有时候错误日志中可能会有具体的解决方案。

  8. 使用正确的证书链:在某些情况下,你可能需要确保服务器配置了正确的证书链。证书链包括所有中间证书,这些中间证书用于将服务器的证书链接到受信任的根证书。 

你可能感兴趣的:(http,网络协议,网络,go,后端)