我正在使用OpenSSL来验证服务器的证书.由于OpenSSL在没有任何内置根CA的情况下发货,我们必须使用我们的软件(我们静态链接OpenSSL)自行分发根CA证书.通常,执行此操作的方法是以PEM格式分发证书文件并调用SSL_CTX_load_verify_locations.
但是,此函数采用文件/目录路径并直接从文件系统读取根证书文件.我们真的希望能够将证书硬编码到我们的二进制文件中,而不是将其保存到文件系统中.
换句话说,我们真的希望像SSL_CTX_load_verify_locations这样的函数采用X509*而不是文件路径.
这样的事情存在吗?或者是否有一种简单的方法可以将它们自己组合在一起?我们似乎无法找到关于此的更多信息.
非常感谢您的任何建议!
我在配置 Windows 以使用az命令行工具时遇到一些问题。我测试了多种配置。一种是本地安装的系统,另一种是基于 Windows 的 docker 容器。我在两个系统上都遇到相同的错误。
如果我发出以下命令:
az login --tenant my-domain.org
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
HTTPSConnectionPool(主机='login.microsoftonline.com',端口=443):超过最大重试次数,网址:/my-domain.org/.well-known/openid-configuration(由 SSLError(SSLCertVerificationError(1, '[SSL : CERTIFICATE_VERIFY_FAILED] 证书验证失败:证书链中的自签名证书 (_ssl.c:1125)')))
该容器具有以下az版本openssl:
PS C:\azp> az version
{
"azure-cli": "2.28.0",
"azure-cli-core": "2.28.0",
"azure-cli-telemetry": "1.0.6",
"extensions": {}
}
PS C:\azp> openssl version
OpenSSL 1.1.1k 25 Mar 2021
Run Code Online (Sandbox Code Playgroud)
本地系统有以下az版本openssl:
(base) PS C:\01_Dev\dockerdevimage> az version
{
"azure-cli": "2.26.1",
"azure-cli-core": "2.26.1",
"azure-cli-telemetry": "1.0.6",
"extensions": {}
}
(base) PS C:\01_Dev\dockerdevimage> openssl version
OpenSSL 1.1.1c 28 May 2019 …Run Code Online (Sandbox Code Playgroud)