自己署名SSL証明書を使用するのは悪い習慣ですか?


29

特に異なるサブドメインを保護する必要がある場合、SSL証明書は個人にとってかなり高価です。私の主な焦点は接続を保護することであり、自分自身を認証することではないため、自己署名証明書の使用を検討しています。

ただし、このような証明書に遭遇すると、いくつかのブラウザーで厄介な警告が表示されます。自己署名証明書の使用を推奨しませんか(小規模なWebアプリケーションや小規模なWebサイトの管理ページなど)。または、場合によっては大丈夫ですか?

回答:


14

一般に、自己署名証明書を使用するのは良くありません。それを行うと、証明書が悪いという警告を受け取ったときに人々があなたのサイトを離れる危険があります。さらに重要なことは、誰かが自分の代わりに自分の自己署名証明書を使用してインジェクション攻撃を行うリスクが大きくなり、訪問者はそれ以上何も知らないということです。

詳細については、こちらの記事http://www.sslshopper.com/article-when-are-self-signed-certificates-acceptable.htmlご覧ください


14

RandomBenが言ったように、自己署名証明書は、彼が説明した理由のために一般的に眉をひそめられます。しかし、彼らが大丈夫な状況が1つあります:あなたのウェブサイトに機密データを提出する必要がある人々のセットが小さくて限られている場合、彼らはすべていくらかいくらか技術的に有能であり、あなたは彼ら全員と通信することができます。その場合、各人に証明書の詳細を与えることができ、彼らはあなたのサイトに行くときに証明書を手動で確認し、必要に応じてセキュリティ例外を追加できます。

極端な例として、個人用VPSには管理サブドメインがありますが、このサブドメインには自分だけがアクセスする必要があります。接続を保護するために使用されているサーバー証明書がサーバーにインストールしたものと同じであることを手動で確認できるため、自己署名証明書でそのドメインを保護しても問題はありません。

自己署名証明書が機能しない場合、または「実際の」証明書が必要な場合、Let's Encryptをお勧めします。Let's Encryptは、Internet Security Research Groupによって開始され、SSL証明書を提供する大手インターネット企業によってサポートされています。コストがかからない。使用できる検証プロセスは完全に自動化されており、実際、ACMEプロトコルをサポートするWebサーバー(現在使用しているCaddyなど)は完全に独自に証明書を取得できるため、これを行うことができます。Let's Encryptはあなたを確認しません、人として、あなたはあなたが言う人です。Webサーバーが主張するドメインでコンテンツを提供できることを確認するだけです。Let's Encryptはすべての主要なブラウザーでサポートされていますが、検証が最小限であることはよく知られているため、eコマースサイトなど、人々が機密情​​報を送信するようなものを実行している場合は、おそらくお金を使ってより高いレベルの検証を伴う証明書。

検証にお金を払いたくないが、もうしたくない人には、StartComの無料のStartSSL証明書をお勧めしていました。StartComは2016年にWoSignによって密かに買収され、その後いくつかのドメインに対して不正な証明書を発行しました。その結果、主要なブラウザはStartCom証明書のサポートを削除しました。(私が知る限り、IEはそれらをサポートしていません。)いずれにしても、Let's Encryptははるかに便利です。


最初の段落の+1。サーバーでWebminの自己署名証明書を使用するのは、それを使用するのが自分と設計者だけであるためです。しかし、一般公開で使用することはお勧めしません。
不機嫌なヤギ

3

自己署名証明書を使用することは悪い習慣ではありません。自己署名証明書には、CA署名証明書を使用する意味がないという多くの実用的な目的があります。

たとえば、多くのサーバーで、パスワードなしのログインをセットアップしています。これらは私が頻繁に接続するサーバーであり、時には複数のSSH接続を開いたままにしておくため、毎回ユーザー名とパスワードを入力するのは面倒です。

代わりに、各クライアントマシン(オフィスのワークステーション、ラップトップ、自宅のワークステーション)で生成した自己署名SSL証明書を使用します。このようなセットアップにより、生産性に影響を与えることなく、各サーバーにかなり長く、安全で、完全に一意のパスフレーズを使用できます。また、各証明書の公開キーをインストールできるサーバーに直接アクセスできるため、CA署名付き証明書を使用しても意味がありません。

私は可能性があり、私たちの会社のために社内使用証明書のすべてに署名することができたと私自身のルートCAを設定し、このよう私は、各サーバー上の単一のパブリックキーをインストールする必要があります。しかし、私たちの組織はこれを本当に必要とするサイズまで成長しておらず、安全なHTTPの目的のために、これはまだ自己署名証明書を持っているのと同じです。

同様に、自己署名証明書は、電子メール接続、PGP署名、および公開鍵の事前交換が簡単なサーバー間接続に頻繁に使用されます。これらのケースの多くでは、これは実際には、チェーン内の任意のポイントで侵害される可能性がある証明書チェーンに依存するよりも安全です。


あなたのケースでSSL証明書を使用している理由がわかりませんか?パスワードを複数回入力したくないと言います。ssh-agentでSSH秘密鍵を使用するだけで、パスワードを複数回入力することなく各サーバーで自動的に認証できます。
ウーカイ

@Wookai:それはSSHでそれを行う1つの方法ですが、SSLクライアント証明書を使用することは、クライアント認証のはるかに汎用的な方法です。また、電子メールだけでなくHTTPS認証にもクライアント証明書を使用します。また、後で内部CAをセットアップすることを選択した場合、より柔軟で強力になります。その時点で、すべてのクライアント/ユーザーに個別の秘密鍵をインストールする必要はありません。これは、より堅牢なソリューションであるIMOです。
Lèseはmajesté

2

複数のサブドメインを保護する場合は、ワイルドカード証明書を使用することをお勧めします。これは、保護するサブドメインの数に応じて、ドメインごとに1つ購入するよりも大幅に安くなります。たとえば、4つのドメインを使用すると、RapidSSLのワイルドカードは個々の証明書よりも安くなります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.