web-dev-qa-db-ja.com

自己署名PEM証明書を信頼する

  1. PEM証明書を使用してSSLでプロキシサーバーを設定しました。さて、この証明書を自動的に信頼したいマシンがいくつかあります(Webブラウザーからの不満はありません)。各マシンにPEM証明書をインストールするにはどうすればよいですか?

  2. また、より推奨されるのは、自己署名証明書を生成するか、snakeoil証明書を連結するかです。

23
Teresa e Junior

ブラウザーには、信頼できる「認証局」(CA)証明書のリストがあります。サーバーの証明書がこれらのCA証明書のいずれかによって署名され、適切に形成されている場合、SSL警告は表示されません。

多くのブラウザには、Verisign、Thawteなどの多くの一般的なCA証明書が付属しています。ほとんどのブラウザでは、信頼できるCAのリストに新しいCAをインポートできます。

独自の自己署名サーバー証明書を作成するように、独自の自己署名CA証明書を作成できます。その後、それを使用してサーバー証明書に署名できます。 CAが有名な会社によって提供されていない場合、それがあなたが作成したものではない場合、サーバー側で明示的にインポートする必要があります。

以前、これを行うためにxcaを使用しました。 CAとHTTPサーバー用のテンプレートがあります。手順はこれです:

  • CAの秘密鍵を作成する
  • 「CA」テンプレートを使用して、このキーを使用して自己署名CAを作成します
  • プロキシサーバーの秘密キーを作成する
  • 2番目のキーを使用して、作成したCAを参照する「証明書署名リクエスト」(CSR)を作成します。
  • CSRに「署名」すると、自分のCAを参照するプロキシサーバー証明書が作成されます。

次に、CA証明書を(xcaを使用する場合はファイルとして)エクスポートする必要があります(もちろん、秘密鍵は含めないでください)。 .pemが生成されますが、拡張子を.crtに変更できます。ユーザーがそれをクリックすると、FirefoxとInternet Explorer、およびおそらく他の主要なブラウザーにインストールするように提案されます。この.crtの自動インストールに関しては、次のことができます。

  • iEでグループポリシーを使用する
  • 警告を回避したい場合は、.crtをダウンロード/インストールするように求める紹介ページにユーザーを誘導します。

次に、HTTPサーバー証明書のエクスポート機能を使用して(サーバー側の秘密キーと証明書の両方をエクスポート)、プロキシサーバーに配置できます。

10
LawrenceC
  1. 証明書をターゲットシステムの/etc/ssl/certsにコピーします。次に、コマンドopenssl x509 -noout -hash -in ca-certificate-fileで生成されたハッシュを使用してシンボリックリンクを作成し、ca-certificate-fileを証明書名に置き換えます。証明書は、独自の証明書ストアを持たないすべてのプログラムで受け入れられるはずです。

    独自の証明書ストア(ブラウザー、Javaなど)を備えたプログラムの場合は、証明書をインポートする必要があります。

  2. 独自の自己署名証明書または署名付き証明書を生成するのが最適です。

    tinyca2をインストールして、独自の認証局を生成することができます。上記の手順で説明されているように、認証局証明書をインポートできます。アプリケーションの署名付き証明書を生成してデプロイします。

    証明書を信頼する必要があるユーザーにCA証明書を配布します。証明書をインポートする方法に関する情報を提供する必要がある場合があります。警告:彼らがこれを行う場合、あなたは彼らにとって別の信頼できるCAになるので、それに応じてCAを保護してください。

    多くのツールは、自己署名証明書または信頼されていないCAの証明書を信頼するように構成することもできます。これは通常、1回限りのアクションです。これは、安全でない機関からCA証明書を受け入れるよりも安全であり、受け入れられた証明書のみが信頼されます。

17
BillThor

DebianとUbuntuでは、certificate.pem/usr/local/share/ca-certificates/certificate.crtにコピーしてから、dpkg-reconfigure ca-certificatesを実行する必要があります。 /etc/ssl/certsはそのコマンドによって管理されます。

13
Thom Wiggers