![使用旧版 TLSv1 ubuntu 22.04 openssl3 运行 nagstamon](https://linux22.com/image/1190980/%E4%BD%BF%E7%94%A8%E6%97%A7%E7%89%88%20TLSv1%20ubuntu%2022.04%20openssl3%20%E8%BF%90%E8%A1%8C%20nagstamon.png)
我正在尝试将 nagstamon 3.8 连接到旧版 nagios 服务器 3.2.2。
当我尝试连接时,出现错误
'[SSL: UNSUPPORTED_PROTOCOL] unsupported protocol (_ssl.c:997)'
两年前我也遇到过同样的问题。但后来我找到了解决方案: Ubuntu 20.04 - 如何设置较低的 SSL 安全级别?
官方发布说明称“SSL 3、TLS 1.0、TLS 1.1 和 DTLS 1.0 仅在安全级别 0 下工作,除非使用不带 SHA1 的 RSA 密钥交换”
现在编辑 /etc/ssl/openssl.cnf 没有结果。openssl.cnf 看起来像这样:
openssl_conf = openssl_init
[openssl_init]
providers = provider_sect
ssl_conf = ssl_sect
[provider_sect]
default = default_sect
legacy = legacy_sect
[default_sect]
activate = 1
[legacy_sect]
activate = 1
[ssl_sect]
system_default = system_default_sect
[system_default_sect]
CipherString = ALL:@SECLEVEL=0
在我的 ubuntu 20.04 和 22.04 中,openssl ciphers -s -v -tls1 的输出看起来相同,但在 20.04 中一切正常,而 22.04 则不然。
如何在 ubuntu 22.04 中为 nagstamon 或任何其他应用程序启用 TLSv1 支持?
答案1
同样的问题,TLSv1 加密标准被发现不安全,因此 OpenSSL 必须将其从软件中删除。我担心 TLSv1 会永远消失。
因此,在尝试在 Ubuntu 22.04 上重新配置 OpenSSL 3.0.2 三个小时后,我深吸了一口气,心想“你必须跳出固有的思维模式”,所以我想出了一个替代解决方案。
TLSWhatEverVersion 中的 MySoftware > HTTPSApache2Proxy > WebservicesServerInTLSv1
因此,我们的想法是使用 Apache2 将 TLSv1 转换为您需要的任何内容,然后再转换为您需要的任何内容。
解决方案是使用“Apache2”作为反向代理,将 TLSv1 转换为我通过 https 向他请求的任何内容,效果很好。我花了大约 1 小时尝试不同的配置来配置“Apache2”,并激活执行任务所需的不同模块。
首先你必须安装“Apache2”:
sudo apt install apache2
其次你必须测试它:
http://<WhatEverIp>
在您的网络浏览器中。
三、在“Apache2”中启用SSL模块:
a2enmod ssl
第四,在“Apache2”上启用代理模块:
a2enmod proxy
最后,您必须将虚拟主机添加到您的 sites-enabled 配置文件(/etc/apache2/sites-enabled/000-default.conf):
- 在文件末尾添加:
<虚拟主机 *:端口>
ProxyPass / https://<TLSv1 IP of origin>:<port>/
ProxyPassReverse / https://<TLSv1 IP of origin>:<port>/
SSLEngine on
SSLProxyEngine on
SSLProxyEngine on
SSLProxyVerify none
SSLProxyCheckPeerCN off
SSLProxyCheckPeerName off
SSLProxyCheckPeerExpire off
SSLCipherSuite AES256+EECDH:AES256+EDH
SSLProtocol All -SSLv2 -SSLv3 -TLSv1 -TLSv1.1
SSLCertificateFile /etc/apache2/certs/<selfSignedCertName>.crt
SSLCertificateKeyFile /etc/apache2/certs/<selfSignedCertName>.key
</VirtualHost>
附加:生成自签名证书:
mkdir /etc/apache2/certs
cd /etc/apache2/certs
openssl genrsa -out mysite.com.key 1024
openssl req -new -key mysite.com.key -out mysite.com.csr
openssl x509 -req -days 100000 -in mysite.com.csr -signkey mysite.com.key -out mysite.com.crt
如果您有任何疑问,请提出,因为我扭曲的大脑有时会以神秘的方式运作。
来自智利的亲切问候。
重新创建解决方案的链接:
- https://stackoverflow.com/questions/61796487/how-to-hide-weak-ssl-behind-a-proxy
- https://forums.centos.org/viewtopic.php?t=65408
- http://www.giuseppeurso.eu/en/redirect-from-http-to-https-and-viceversa-with-apache-proxypass/
- https://stackoverflow.com/questions/18872482/error-during-ssl-handshake-with-remote-server