首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >由于TLS错误,无法进行svn校验

由于TLS错误,无法进行svn校验
EN

Stack Overflow用户
提问于 2022-05-11 12:43:38
回答 2查看 1.8K关注 0票数 0

跑步:

代码语言:javascript
运行
复制
svn checkout https://hostname

给予:

代码语言:javascript
运行
复制
svn: E170013: Unable to connect to a repository at URL 'http://hostname'
svn: E120171: Error running context: An error occurred during SSL communication

运行此命令:

代码语言:javascript
运行
复制
 curl -v --insecure  https://hostname

给出

代码语言:javascript
运行
复制
*   Trying 10.181.203.1:2795...
* Connected to 10.181.203.1 (10.181.203.1) port 2795 (#0)
* ALPN, offering h2
* ALPN, offering http/1.1
* TLSv1.0 (OUT), TLS header, Certificate Status (22):
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
* TLSv1.0 (IN), TLS header, Certificate Status (22):
* TLSv1.3 (IN), TLS handshake, Server hello (2):
* TLSv1.0 (IN), TLS header, Certificate Status (22):
* TLSv1.0 (IN), TLS handshake, Certificate (11):
* TLSv1.0 (IN), TLS header, Certificate Status (22):
* TLSv1.0 (IN), TLS handshake, Server key exchange (12):
* TLSv1.0 (OUT), TLS header, Unknown (21):
* TLSv1.0 (OUT), TLS alert, internal error (592):
* error:0A0C0103:SSL routines::internal error
* Closing connection 0
curl: (35) error:0A0C0103:SSL routines::internal error

我试图用"MinProtocol = TLSv1“来修复openssl配置,但这没有帮助。

请帮帮忙

Ubuntu 22.04 LTS

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-05-11 19:22:00

尝试使用--trust-server-cert,但要了解您正在绕过证书检查。

SVN文档:https://svnbook.red-bean.com

票数 1
EN

Stack Overflow用户

发布于 2022-06-07 10:44:05

下面是解决错误的解决方案:

curl:(35)错误:0A000152:SSL例程::禁用不安全的遗留重新协商

https://github.com/Kong/insomnia/issues/4543#issuecomment-1126771807

然后,一个新的错误:

curl:(35)错误:0A000102:SSL例程::不支持的协议

只需使用这样的旧方法:

https://stackoverflow.com/a/61568390/19289721

最后一个错误,如您的错误:

curl:(35)错误:0A0C0103:SSL例程::内部错误

在openssl.org中找到变更量

降低了SHA1签名和基于MD5签名的安全性。这导致SSL 3、TLS 1.0、TLS 1.1和DTLS 1.0不再在默认的安全级别1工作,而是需要安全级别0。可以使用带有@SECLEVEL的密码字符串或调用SSL_CTX_set_security_level(3)来更改安全级别。这也意味着在ClientHello中缺少签名算法扩展的地方,在安全级别1的TLS 1.2中,握手就会失败。这是因为,虽然这个扩展是可选的,但如果不能提供一个扩展,就意味着OpenSSL将倒退到默认的签名算法集。这个默认集需要SHA1的可用性。

guide.html

So...Change @SECLEVEL=1 to @SECLEVEL=0

一切都很好!

代码语言:javascript
运行
复制
<html><body><h1>It works!</h1></body></html>

完整的openssl.cnf差异是:

代码语言:javascript
运行
复制
54c54,67
< providers = provider_sect
---
> # providers = provider_sect  # commented out
> 
> # added
> ssl_conf = ssl_sect
> 
> # added
> [ssl_sect]
> system_default = system_default_sect
> 
> # added
> [system_default_sect]
> Options = UnsafeLegacyRenegotiation
> MinProtocol = TLSv1
> CipherString = DEFAULT:@SECLEVEL=0

将openssl配置文件复制到任何路径,如/path/to/openssl_tls1.cnf

应用修补程序,并添加设置OPENSSL_CONF=/path/to/openssl_tls1.cnf

注意:

UnsafeLegacyRenegotiation:允许使用不安全的遗留重新协商。相当于SSL_OP_ALLOW_UNSAFE_LEGACY_RENEGOTIATION。MinProtocol设置最低支持的SSL、TLS或DTLS版本。 当前支持的协议值是SSLv3、TLSv1、TLSv1.1、TLSv1.2、TLSv1.3、DTLSv1和DTLSv1.2。SSL和TLS边界仅适用于基于TLS的上下文,而DTLS边界仅适用于基于DTLS的上下文。可以通过一个实例设置TLS绑定,另一个实例设置DTLS绑定来重复该命令。值None适用于这两种类型的上下文,并禁用限制。密码字符串@SECLEVEL=n可以在任意点使用,将安全级别设置为n (应该是0到5之间的数字),inclusive.See 级别用于描述每个级别的含义。默认回调行为,如果应用程序不设置自己的安全回调,则使用默认回调。它的目的是提供正常的缺省值。每个级别的含义如下所述。 0级一切都是允许的。这保留了与以前版本的OpenSSL的兼容性。 级别1安全级别对应至少80位的安全性。任何提供低于80位安全性的参数都不包括在内。因此,禁止RSA、DSA和DH密钥小于1024位,ECC密钥小于160位。所有出口密码套件都是禁止的,因为它们都提供少于80位的安全性。SSL版本2是禁止的。任何使用MD5的密码套件也是被禁止的。 二级安全级别设置为112位安全性。因此,禁止RSA、DSA和DH密钥小于2048位,ECC密钥小于224位。除了一级排除外,还禁止使用RC4的任何密码套件。SSL版本3也是不允许的。压缩是禁用的。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72201289

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档