Technology

SSLの証明書取得と仕組み

  • POST
SSL(Secure Sokets Layer)はインターネット上でデータを暗号化して送受信するトランスポート層のプロトコル1。 TLS(Transport Layer Security)はSSLを元に作られたプロトコル。SSLという名称が広く普及していたことからSSLと呼ばれることも多い。 多くのサイトではより安全性の高いTLSが使われている。 現在のTLSの最新バージョンは1.2で、TLSがネゴシエーション時に使うバージョン番号はSSL時代からの通し番号で「3.3」になっている2。 HTTPS (Hypertext Transfer Protocol Secure)はTLSを使って、セキュアなHTTP通信をしている。 サーバ証明書を取得する SSLにはサーバ証明書が必要。 opensslコマンドなどを使って、証明書発行に必要な証明書要求データを作る。 作り方についてはサーバー証明書のつくりかたと、その原理 - kirinwikiblogが詳しいので参考にした。 まず、opensslコマンドでRSA方式で2048ビットの鍵ペア(秘密鍵)を作る。 $ openssl genrsa -out server.key 2048 Generating RSA private key, 2048 bit long modulus .............................................+++ ...+++ e is 65537 (0x10001) “2048 bit long modulus”と書いてあるように2048ビットなのはmodulusである。modulusといっているのはRSA暗号 - WikipediaやRSA (cryptosystem) - Wikipediaで言うところの $n$ である3。 暗号化に使う $e$ は65537になっていて、これは固定っぽい。 server.keyの中身を見ていこう。2048ビットは長いので32ビットで見ていく。32ビット未満は小さすぎるというエラーが出て生成できない。 $ openssl genrsa -out server.key 32 Generating RSA private key, 32 bit long modulus .