
私は .net 開発者であり、現在 asp.net プロジェクトを http から https に移行する作業を行っています。
いくつかのチュートリアルを試してみましたが、何か見逃していることはないかと思っています。
これまでのところ:
サーバーに CA をインストールして構成しました。CA サービスは正常に動作していますが、外部からアクセスする必要があるかどうかはよくわかりません。証明書要求を送信するために localhost/certsrv を実行しています。その後、サーバーにログオンして要求を確認/拒否します。
同じサーバーで IIS を構成しました。CA サービスによって生成された証明書を確認しました。匿名認証を有効にし、パスワードをクリア テキストで送信するように設定しました。
証明書がどのように機能するかについて、100% 理解していません。正しく理解していますか?
- ウェブサイトにログインします: https\someaddress.domain\site
- この Web サイトに関連付けられている証明書があるため、これが不明な証明書であることを示すウィンドウが表示されます。
- ウェブサイトを閲覧することを確認すると、ブラウザがそのウェブサイトに移動します。
ブラウザと Web サーバー間でデータを転送する際のセキュリティはどのように向上しますか?
答え1
おっしゃる通りです。自己署名証明書の問題は、それがデフォルトで信頼されたルートに含まれる署名機関ではないことです (そのため、既知のプロバイダーではないというメッセージが表示されます)。一部の人にとっては、これは問題ではありません (OWA が思い浮かびます)。ただし、企業が Web 上で取引を行う場合は、既知の機関 (Verisign、GeoTrust など) からの証明書が必要になります。そうすれば、HTTPS 接続が自動的に行われ、ユーザーにその接続を促すメッセージは表示されません。
セキュリティの向上に関しては、もちろん効果があります。ユーザーのブラウザからサーバーへのトラフィックを暗号化します。
CA は外部から見える必要はありません。
自己署名証明書についても、覚えておくべきことがいくつかあります。ブラウザは、ルートにインストールしない限り、サイトにアクセスするたびに許可を求めるため、ユーザーに誤った安心感を与えるのは非常に簡単です。つまり、ユーザーがサイトにアクセスするたびにそのメッセージが表示されるため、ARP ポイズニングを少し行って偽の証明書を発行するのは非常に簡単で、その時点で「暗号化された」接続が所有されるということです。