2017-07-31 15 views
0

私はopenSSLとcert doとdo notで作業するのが初めてです。私はローカルで開発しています自己署名入り証明書を使用してSSLによる水路でテストを実行すると、エラーが発生する

@override 
SecurityContext get securityContext { 
    return new SecurityContext() 
     ..usePrivateKey("SSL/key.pem", password: keypassword) 
     ..useCertificateChain("SSL/cert.pem", password: certpassword); 
} 

をし、OpenSSLを使用して自己署名キーと証明書を作成しました:私のシンクファイル内

私はSecurityContextがの使用は、HTTPSを強制的に作っています。水路がサーブを介してアプリケーションを実行している場合、私は(私は証明書がCAが署名されていないことを認識しています、それぞれのブラウザで確認する以外に)何の問題を持っていませんが、私のテストを実行しているとき、私は、次のエラーが表示さ:

HandshakeException: Handshake error in client (OS Error: 
CERTIFICATE_VERIFY_FAILED: self signed certificate(ssl_cert.c:345)) 

をこれを避けるために私がCA署名証明書を使用する必要があるということですか?

答えて

1

デフォルトでは、サーバーのSSL証明書が自己署名されていると、Dart HttpClientは失敗します。これをオーバーライドできますが、TestClientでは基になるHttpClientにアクセスすることはできません。そのプロパティを公開することもできますが、...

テストは、主にアプリケーションロジックをテストするためのものです。 SSLを使用するかどうかはそれほど重要ではありません。 aqueduct serveには、SSLのCLIオプションがあります。ローカルで実行する場合やテストで実行する場合は、SSLを省略できます。署名付きのSSL証明書を使用してリモートで実行する場合は、起動時にCLIの引数にキーとファイルパスを追加できます。

aqueduct serve --ssl-key-path SSL/key.pem --ssl-certificate-path SSL/cert.pem

関連する問題