2017-08-29 3 views
1

私は現在、IISとNGINXの間でSSLハンドシェイクを設定する私の開発テストenvに取り組んでいます。 NGINXは、オペレーティングシステムLinuxビーグルボーンで動作しています。NGINXクライアントベリファイ:自己割り当てのルートCAを登録します

私はprodではないので自己割り当てのルート/中間/サーバ証明書を使用していますが、問題が発生しています。上記のconfファイルと同様に

server { 
# SSL configuration 
# 
listen 443 ssl default_server; 
listen [::]:443 ssl default_server; 

ssl_certificate server.crt; 
ssl_certificate_key server.key; 

ssl_client_certificate intermediate.crt; 
ssl_verify_client optional_no_ca; 

error_log /etc/nginx/info.log info; 

ssl_verify_clientoptional_no_caです:設定ファイルに次の

。ここで、ハンドシェイクが機能します。 ssl_verify_clientoptionalに変更しました。ハンドシェイクは失敗します。次のように私はLinuxのBeagleboneのOSに自己署名ルート証明書と自己署名した中間ルートチェーン証明書をインストールしようとしたんでした

Copy your CA to dir /usr/local/share/ca-certificates/ 
Use command: sudo cp foo.crt /usr/local/share/ca-certificates/foo.crt 
Update the CA store: sudo update-ca-certificates 

しかし、握手はまだ失敗しました。

私の記事を読んでいただきありがとうございます。

答えて

0

optionalフラグは、クライアント証明書の検証を試みます。クライアント証明書が中間CAによって署名されている場合、nginxは、ルート証明書と中間証明書の両方を検証する必要があります。

ルート証明書と中間証明書の両方を1つのファイルに連結し、ssl_client_certificateディレクティブで使用可能にする必要があります。

詳細については、this documentを参照してください。

+0

私は連鎖した証明書を試しました。だから私のconfファイルは次のようになります: 'server {listen 443 ssl default_server;聴く[::]:443 ssl default_server; ssl_certificate server.crt; ssl_certificate_key server.key; ssl_client_certificate中間証明書オーサリティチェーン.crt; ssl_verify_client optional; '私はまだ同じ問題があります。 – austin

関連する問題