TL; DR版本
我想知道:
更长的版本
我们一直在构建一个使用来自外部证书颁发机构的适当付费证书的应用程序。该应用程序使用基于Boost ASIO和Boost Beast的家庭服务器设置,我们最近才注意到它与iOS不相称 - ASIO表示没有共享密码。
阅读TLS如何工作让我发现我们的服务器的某些部分阻止我们使用ECDHE- *密码套件(iOS似乎想要)来服务TLS这一事实 - 但是我在计算时遇到了困难如何将ASIO和我们当前的证书/密钥与ECDHE服务相结合。
我尝试了什么:
openssl dhparam
的结果添加到ASIO中,然后指定密码。 Curl报告这允许使用DHE
但不使用ECDHE
进行连接。指定仅使用ECDHE
的密码会在连接时导致错误。 openssl ecparam
的输出传递给ASIO。我无法格式化ASIO接受的东西。openssl ecparam
的输出与另一个组合函数一起使用,将原始证书修改为使用ECDHE
的证书。我从the OpenSSL wiki开始讨论这个问题,建议如果证书不包含行ASN1 OID: prime256v1
(或类似的命名曲线),那么它不适合ECDHE使用。 此时我不确定该问题的真正所在(在ASIO,证书或我如何将它们放在一起)以及互联网上我发现的大部分信息与家庭有关 - 从头开始滚动所有内容,而不是使用现有的证书。
答案 0 :(得分:1)
更新11/05/19
https://github.com/chriskohlhoff/asio/pull/117使用ECDHE对ASIO进行了更改。需要等待一段时间才能看到它进入哪个Boost lib版本。
原始答案
我似乎找到了任何googlers的答案 - 在撰写本文时,ASIO似乎并不支持ECDHE。来自主回购的This issue表明,ECDHE已获得支持,但尚未实施。
答案 1 :(得分:0)
以下是自2016年以来一直在等待合并的ECDHE实施的链接:https://github.com/chriskohlhoff/asio/pull/117。
+1引起Boost ASIO维护人员的注意;他已经很慢了。