web-dev-qa-db-ja.com

秘密鍵なしのApache SSL

現在、サーバーにQAサイトを設定するためにSAML認証を必要とするクライアントと協力しています。 SSLをインストールするためのCRTファイルが送信されましたが、キーは送信されていません。最低限、SSLではハンドシェイクを完了するために.crtファイルと.keyファイルが必要であることを知っていますが、.keyファイルなしでこれを行うように要求しています。

私の質問は、これは可能ですか?これは意味がないので誰も試みなかったApacheのあいまいな設定ですか?あらゆる種類のドキュメントを検索してきましたが、何も見つかりませんでした。

もちろん、キーなしでApacheを実行しようとすると、エラーが発生します。

AH02238: Unable to configure RSA server private key
SSL Library Error: error:0B080074:x509 certificate routines:X509_check_private_key:key values mismatch

これは予想されていましたが、今は解決策を見つけたいと思っています。

ありがとうございました!

4
DidierTech

SSLを機能させるには、.key[〜#〜] [〜#〜].crt.keyは秘密鍵であるため、これらはペアで機能します)。

apacheでSSLが必要な場合は、自己署名(またはダミー)証明書を生成できます。これにより、.keyおよび.crt(または.pem)Apacheで使用できます。

またはおそらくより良い方法は Let's Encrypt を使用することです:

Let’s Encryptは新しい認証局です。無料で自動化され、オープンです。

2
alexus

それはその証明書の使用目的が何であるかに完全に依存します。

多くの目的で完全なキーペアが必要ですが、他のシナリオも考えられます。

  • クライアントが公開キー(内部CAのfi)を送信した可能性があるため、それを使用してメッセージ内のSAML署名を検証し、TLSで保護された接続をクライアントに戻すことを確認したり、クライアントが使用するクライアント証明書を確認したりできます。その場合、関連付けられた秘密鍵は不要であり、決して受け取るべきではありません...

  • おそらく、あなたの同僚の1人がCSRを送信し、署名された証明書はクライアントの応答です。それからあなたはすでに秘密鍵を持っているはずです、そしてあなたのクライアントは最も確実にないはずです...

最初に次のコマンドで証明書を確認することをお勧めします:openssl x509 -in <filename>.crt -noout -text -purpose

2
HBruijn

いいえ。それは、公開鍵と秘密鍵の認証システムではまったく意味がありません。

HTTPSを使用するすべてのWebサイトの証明書を取得できます( 方法については、こちらをご覧ください )。あなたが求めていることが実行可能であった場合、ローカル環境で何ができると思いますか?少しの作業で、Google、Facebook、その他のWebサイトになりすますことができます。

1