Web サーバー用の Ubuntu 16.04 LTS サーバーに nginx リバース プロキシを設定しています。
Ubuntu では 3 つの異なるサービスが実行されます。サービスは API 呼び出しを使用して相互に通信します。同様に、クライアント (ブラウザー/モバイル) は API 呼び出しを使用してサービスと通信します。
クライアントの SSL 要求を検証するには、サーバー PC に証明書をインストールする必要があります。認証後、要求のみが処理されるか、さらに処理するために転送されます。
各サービスには、次の形式のファイルの証明書があります。Ser1_cert.crt、Ser1_key-decryp.key、Ser1_keyfile.key、Ser1_exported.pfx
lly Ser2_..., Ser3_... files are available
CAの場合、CA_50EA.crt、CA_50EA.pfxファイルが利用可能です
証明書のインストールにどの証明書ファイル形式を使用すればよいかわかりません。
システムに証明書をインストールするには、次の手順に従います。1. .crt 拡張子のファイル (CA ファイルを含む) をコピーし、/usr/share/ca-certificates
以下のコマンドを実行します。2.sudo dpkg-reconfigure ca-certificates
証明書を選択するための UI が表示され、すべてを選択しました。最後に追加された証明書の数が表示されました。
nginx.conf ファイルに証明書パスを適切に設定しました。.crt
および.key
ファイルをそれぞれ/etc/ssl/certs/
およびにコピーしました/etc/ssl/private/
。
ssl_certificate "/etc/pki/certs/XServer_certificate.crt"; ssl_certificate_key "/etc/ssl/private/XServer_decryp.key";
ここで、ブラウザ クライアントからサーバーにログインしようとしましたが、ログイン証明書の検証が失敗し、次のサーバー ログ メッセージが表示されました。
info: LoginController[0]
Certification Error :unable to get local issuer certificate
再度確認するために、すべての証明書ファイルを/usr/share/ca-certificates
ディレクトリにコピーし (合計 14 ファイル)、再度実行しましたsudo dpkg-reconfigure ca-certificates
。今回も同じエラーが発生しました。
次にsudo update-ca-certificates --fresh
コマンドを実行すると、以下のように ca.pem ファイルの警告とともにインストールされた証明書の数が表示されました。
WARNING: CA_50EA.pem does not contain a certificate or CRL: skipping 152 added, 0 removed; done.
.pemファイルはフォルダに作成されています/etc/ssl/certs
が、.crtファイルのみ入力しました/usr/share/ca-certificates
以下のコマンドを使用して検証してみましたが、以下と同じ問題が発生しました。
openssl s_client -connect [server name]:443 -showcerts -CAfile /etc/ssl/certs/ca-certificates.crt
................. ................. Verify return code: 21 (unable to verify the first certificate)
検証に失敗したことが明確に表示されます。
何か足りない手順があれば、これを実行するための正しい方法は何ですか。エラーを見て、CA が正しくインストールされていないと思いました。
多くのブログを読みましたが、そのほとんどが同じことを説明していましたが、私にはうまくいきませんでした。
CentOS7 で作業する前の少し前に、システムに証明書をインストールするために次のコマンドを使用しました。 update-ca-trust force-enable、update-ca-trust extract CentOS クライアントでは、上記のコマンドで証明書の検証が正常に行われています。
フィードバックをいただければ幸いです。
ありがとう
答え1
まず皆さんに感謝します。
私の問題は次のとおりです: CentOS に正常にインストールされている CA 証明書が、Ubuntu 16 Server にインストールされず、以下の警告メッセージが表示されます。警告: CA_50EA.pem に証明書または CRL が含まれていません: スキップ 152 個追加、0 個削除; 完了。
解決策: さまざまなアプローチを試しましたが、この問題の正確な根本原因を特定できませんでした。突然、あるアイデアが浮かび、これで問題が解決しました。
以下の URL の手順を使用して CA.pfx ファイルから新しいルート CA を作成し、Ubuntu 16 Server に警告なしで正常にインストールされ、クライアント要求が正常に検証されました。 https://www.itsupportmiami.com/how-to-convert-a-pfx-to-a-seperate-key-crt-file/
私の質問を見て、答えようとしてくれた皆さんに感謝します。