0

我的 DDEV-Local 项目访问 Internet 上服务器上的外部 SOAP API,例如“SOAP-ERROR: Parsing WSDL: Couldn't load from ...”。在升级到 DDEV v1.13 之前我没有遇到任何问题。问题可能出在哪里?

(SOAP 只是客户端 API 或通过 https 的 curl 请求可能失败的一个示例。大多数对不安全服务器的 https 客户端请求都会失败。)

4

3 回答 3

2

我遇到了一种情况,即 TLS 版本不是问题,但curl: (35) error:141A318A:SSL routines:tls_process_ske_dhe:dh key too small在尝试访问旧网站的内容时看到 curl 错误。

对我来说,问题不在于 TLS 版本,而在于 CipherString 安全级别。减少CipherString = DEFAULT@SECLEVEL=2CipherString = DEFAULT@SECLEVEL=1解决问题:

ARG BASE_IMAGE
FROM $BASE_IMAGE
RUN sed -i 's/DEFAULT@SECLEVEL=2/DEFAULT@SECLEVEL=1/g' /etc/ssl/openssl.cnf
于 2020-09-28T15:18:02.820 回答
1

DDEV-Local v1.13+ web 容器使用 Debian 10 Buster,它有一个更新的 OpenSSL 库,默认情况下不允许 TLS v1.0(这是过时的、不安全的,并且很快就会被 web 浏览器禁止)。但是,当然,有些服务器仍在使用 TLS 1.0。

允许TLS 1.0的配置位于 /etc/ssl/openssl.cnf: 中的 Web 容器中MinProtocol = TLSv1.2。如果您需要在更新相关服务器之前将其更改为 TLSv1.0,您可以使用 DDEV-Local 中的自定义 Dockerfile 来完成。

在您的项目中添加一个 .ddev/web-build/Dockerfile,如下所示:

ARG BASE_IMAGE
FROM $BASE_IMAGE
RUN sed -i 's/TLSv1.2/TLSv1.0/g' /etc/ssl/openssl.cnf

请注意,如果您完全可以控制服务器,您确实希望更新服务器,因为您需要使用受支持的 TLS 版本。

感谢Andreas Hoffmeyer提供完整的解决方案。

于 2020-03-05T23:10:32.480 回答
0

在 DDEV 1.15.2 中,我遇到了类似的问题,需要对 TLS 1.1 的支持:

ARG BASE_IMAGE
FROM $BASE_IMAGE
RUN sed -i 's/TLSv1.2/TLSv1.1/g' /etc/ssl/openssl.cnf
于 2020-07-31T15:50:59.810 回答