如何设置Dart以使用CA SSL证书?

时间:2014-11-27 00:51:17

标签: ssl https dart ca

我最近部署了一个提供HTTP请求的Dart服务器应用程序。我想添加对HTTPS的支持,所以我一直在尝试将SSL添加到Dart服务器应用程序。

This answer清楚地说明了如何向Dart添加自签名SSL证书。但是,我想添加一个从SSL提供商处购买的SSL证书。

SSL提供商通过电子邮件发送了我的4个文件:

  • 根CA证书 - AddTrustExternalCARoot.crt
  • 中级CA证书 - COMODORSAAddTrustCA.crt
  • 中级CA证书 - COMODORSADomainValidationSecureServerCA.crt
  • 您的PositiveSSL证书 - my_domain.crt

我一直在试图弄清楚certutil如何工作以及如何将这些证书添加到证书数据库中,但我无法全面了解。

有能力在Dart中启用CA SSL证书的任何人吗?

已解决:感谢评论中的建议,我解决了这个问题。这是我完整设置的要点:https://gist.github.com/stevenroose/e6abde14258971eae982

2 个答案:

答案 0 :(得分:5)

首先,您可能使用openssl为您的私钥,服务器证书和CA证书生成了三个文件。要将所有这些转换为PKCS12文件,您可以使用openssl:

openssl pkcs12 -export -out server.p12 -inkey server.key -in server.crt -certfile CAcert.crt

然后,您可以调整certutil命令,如图所示加载PKCS12而不是生成新证书:

certutil -N -d sql:certdb
certutil -A -n mycertnick -i server.crt -t "TCu,Cu,Tuw" -d sql:certdb
certutil -A -n myCA -i CAcert.crt -t "TCu,Cu,Tuw" -d sql:certdb
pk12util -i server.p12 -d sql:certdb

它似乎与引用的问题中的示例代码一起使用。

答案 1 :(得分:0)

不幸的是,Dart中的SSL管理非常缺乏。 我多次报道,Dart团队没有得到认真答复。 如果您想要完成有关它的事情,请解决此问题: https://code.google.com/p/dart/issues/detail?id=20967