使用旧版 TLSv1 ubuntu 22.04 openssl3 运行 nagstamon

使用旧版 TLSv1 ubuntu 22.04 openssl3 运行 nagstamon

我正在尝试将 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

如果您有任何疑问,请提出,因为我扭曲的大脑有时会以神秘的方式运作。

来自智利的亲切问候。

重新创建解决方案的链接:

相关内容