SSLとは何か?

SSLは「セキュア・ソケット・レイヤー」の略称です。
ソケットレベルでの暗号化を行う仕組みです。

SSLの認証プロセス

1.クライアントからサーバに対して接続を要求します。

2.サーバからクライアントにサーバ証明書を送信します。

3.サーバ証明書はルート証明書によって署名されています。
クライアントは自分の知っているルート証明書で作成された署名であるか検証します。

4.ルート証明書が存在した場合、ルート証明書の公開鍵でサーバ証明書の内容を復号化して読み取ることができます。

5.ルート証明書の公開鍵で読み取れるということはルート証明書の秘密鍵で暗号化されているということがわかります。=>証明書発行機関が正規に発行したサーバ証明書である。

オレオレ証明書はルート証明書も自分で発行する

SSLの認証プロセスの仕組みではルート証明書を信頼できることが前提条件になっています。オレオレ証明書と呼ばれる自己署名証明書ではルート証明書も自分で作成していまう点が、一般的な証明書とは異なります。オレオレ証明書であったとしても通信経路上の暗号化はされていますので、SSLとしては機能しています。

オレオレ証明書の作り方については、この記事が詳しいです。

一般的なサーバ証明書はインターネット上に公開されているサーバを想定しています。ローカル環境に構築したテストサーバなどではオレオレ証明書を使用することになります。

自作のルート証明書は登録が必要になります

ルート証明書を自作することができても、それがシステム上に登録されていない場合、認証で弾かれてしまいます。Windowsにはキーストアと呼ばれる証明書を保存する場所があります。そのキーストアにルート証明書も追加してあげないといけません。Windows 10で使用されるのでしたら、こちらのサイトがわかりやすかったです。

ルートCA(証明機関)の証明書をインポートする (Windows Tips)

キーストアを使わないこともある

全てのプログラムがキーストアを使ってくれると嬉しいのですが、独自に証明書を管理するタイプのアプリケーションもあります。このような場合は、ルート証明書を個別の手順でインストールしなければなりません。

Javaのキーストアにルート証明書を追加する

Pythonのキーストアにルート証明書を追加する

システム開発

Posted by @erestage