SSLとは
インターネットは危険に満ちています。とはいえ,
- 注1)
- SSLv2とSSLv3は既に使用が禁止されており,
現在では後継のTLSが使われています。しかし世間ではSSLという呼び名が普及しているため, 本稿でもSSLで統一します。
今回のレシピではUbuntu 14.
ApacheでHTTPSサーバーを立てる
まず手始めに,
Apache Webサーバーのインストール
$ sudo apt-get install apache2
次にApacheのSSLモジュールと,
SSLモジュールとバーチャルホストの有効化
$ sudo a2enmod ssl $ sudo a2ensite default-ssl $ sudo service apache2 restart
これで,
ポートの確認
$ ss -lnt State Recv-Q Send-Q Local Address:Port Peer Address:Port LISTEN 0 128 :::443 :::* LISTEN 0 128 :::80 :::*
SSLで通信を行うには,
make-ssl-cert generate-default-snakeoil
というコマンドが実行されているのです。make-ssl-certはその名の通り,
/etc/ssl/private/ssl-cert-snakeoil.key
/etc/ssl/certs/ssl-cert-snakeoil.pem
に配置されます。ApacheのデフォルトのSSLサイトの設定である/etc/
/etc/
SSLEngine on
SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem
SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key
このような理由から,
- 注2)
- snakeoilとは日本で言うガマの油のような,
効果のあやしげな胡散臭い商品のことを指す単語です。そこから転じて, 自己署名証明書の名前に使われています。当然ですが, そのまま本番サイトに利用できる証明書ではありません。
念の為opensslコマンドを使って,
SSL証明書の内容の確認
$ openssl x509 -in /etc/ssl/certs/ssl-cert-snakeoil.pem -noout -text -fingerprint -sha256 (……略……) SHA256 Fingerprint=57:2A:35:91:05:9A:FE:62:11:EF:4F:54:6F:07:7C:39:7E:34:FB:F3:08:7C:CD:75:17:51:F0:D6:AE:79:AF:C8
Webブラウザーからhttps://
- 注3)
- 他にも証明書の有効期限が切れていたり,
証明書のCN (コモンネーム) と実際にアクセスしているドメインが異なっている場合にも警告が発生します。Webブラウザーが警告を発するということは, 何かおかしいことが起きているわけですから, ここに書かれている通り, なぜそうなっているのかが理解できている場合を除き, そのようなサイトにアクセスしてはいけません。
「例外を追加」→
本連載では過去にTinyTinyRSSやownCloudといったWebサービスの構築を紹介してきましたが,
- 注4)
- 実際のところ,
ownCloud 7. x系には常にHTTPSで接続させるためのオプションが用意されています。