单声道TLS1.2问题 – btls-cert-sync“命令未find”

概要:

我的公司使用TargetProcess(TP)来跟踪开放项目的进度,并且创build了一小段代码来将更新导入TargetProcess。 目前在构build提交时,我们启动了一个预装了Mono的debian docker镜像,并运行我们的小型.NET(C#)程序将我们的更新连接到TP。

摄制:

看来TP最近更新了它们的API,只接受TLS1.2连接,所以我们不得不用Mono 4.8(Alpha通道)创build一个新的Docker镜像(根据这篇文章 )。 在Docker镜像中安装这个新的Mono程序仍然不能解决这个问题,所以我们采取了几个步骤:(在Mono的安全常见问题解答的提示之后)

// Made sure that the most current version ca-certificates-mono is installed // and it seems to have been installed upon installation of mono 4.8 apt-get install ca-certificates-mono // This should be an unnecessary step from what I read, but ran anyway cert-sync /etc/ssl/certs/ca-certificates.crt // lastly btls-cert-sync command, but can't seem to get it to not return // "command not found" no matter wher I try running it btls-cert-sync 

testing:

似乎有一个真正有帮助的线程如何testing您的证书格式是否正确。 在我的泊坞窗图像中运行这个testing命令后,我仍然看到下面的失败信息。

 MONO_TLS_PROVIDER=btls csharp -e 'Console.WriteLine (new System.Net.WebClient ().DownloadString ("https://www.howsmyssl.com/").IndexOf ("1.2"))' // error message System.Net.WebException: Error: TrustFailure (Ssl error:1000007d:SSL routines:OPENSSL_internal:CERTIFICATE_VERIFY_FAILED) ---> Mono.Btls.MonoBtlsException: Ssl error:1000007d:SSLroutines:OPENSSL_internal:CERTIFICATE_VERIFY_FAILED 

任何帮助或build议,让我们的单声道实例接受TLS1.2连接将是真棒。

btls-cert-syncbtls-cert-sync.exe的shell脚本

find通常安装在4.8.0/lib/mono/4.8 btls-cert-sync.exe并使用mono运行:

 mono btls-cert-sync.exe 

从单声道4.8 beta 3,btls-cert-sync似乎已经合并到证书同步。

请确保您拥有最新版本的cert-sync,因为即使您更新了mono,也可能仍旧安装旧版本的cert-sync,因为ca-certificates-mono软件包尚未更新( Linux的)。

如果您查看证书同步输出,您将看到

 Mono Certificate Store Sync - version 4.8.0.0 ... Importing into legacy system store: ... Importing into BTLS system store: ...