このたび、SSLのワイルドカード証明書を取得して、Apacheに設定したので、作業手順をメモしました。
以下の記事の正式版?有料版です。
・https://urashita.com/archives/4178
ちなみに、無料の証明書、Let's Encryptを使った証明書の使用例は以下にまとめました。
・https://urashita.com/archives/9105
CoreSSLの証明書、ワイルドカード証明書
SSLは、Secure Socket Layerの略で、インターネット上で情報を暗号化して送受信できる仕組みです。
個人情報・クレジットカード情報などの大切なデータを安全にやりとりできます。
基本、httpsで通信する際に使われるものです。
最近は、Googleがhttps化しているサイトをSEO上優遇すると発表しているので、ログインする際だけではなく、WEBサイトを常時SSL化しておくと検索エンジン対策になるのでしょうね。
そういう意味において、ログインが必要でないサイトもSSLの証明書を買って設定するのは意味があると言えるでしょう。
ところで、SSLの証明書には、ワイルドカード証明書というのがあり、「*.(ドメイン名)」で使うことが可能となります。
例えば、ヤフーのようにサブドメインでサービスを分けているようなドメインの場合、ワイルドカード証明書を購入しておけば、その証明書だけでサブドメインをすべてカバーすることが出来るわけです。
- ポータルサイト www.yahoo.co.jp
- オークション auction.yahoo.co.jp
- ショッピング shopping.yahoo.co.jp
ワイルドカード証明書とは 同一のドメイン内であれば、指定されたドメインに属している複数のサブドメインにおいてもSSL証明書の機能が有効となる証明書です。
例えば、通常「secure.example.com」で発行された証明書は、”www.example.com”では、利用することが出来ませんが、「*.example.com」で発行されたワイルドカード証明書では、”secure.example.com”や”www.example.com”
など、”example.com”に属する複数のサブドメインでの利用が可能です。※「111.xxx.example.com」など、ドメインのレベルが異なる場合は利用できませんのでご注意ください。
また、証明書の購入先は、基本どこで買っても大差はないです。
ベリサインとか有名なところは少し高めなのでやめることにします。
今回、私は、ベリサインよりはるかに安くワイルドカード証明書が購入できるCoreSSLの証明書を買うことにしました。
日本では以下のネットオウルのサイトから年間12,000円で購入できます。
当然ですが、証明書は年次更新が必要です。
つまり、毎年、お金を払って更新する必要があるのです。
正直な感想は、なんで、証明書発行会社に毎年お金を払わなきゃいけないんだろうって感じですね。
証明書発行会社は、まったく、サイトの中身のチェックなどは行いません。
結構、ボロい商売かもしれませんね。。
SSL(https)証明書の購入・取得方法
ネットオウルのホームページを見ると、いろいろ種類がありますが、今回は、CoreSSLワイルドカードを購入します。
正しく、購入手続きが済むと以下の画面になります。
これ以降は、サーバー側で設定します。
秘密鍵の作成とCSRを作成します。
Apacheのルートフォルダを
/etc/httpd
とします。
以下の2個のフォルダを作成しておきます。
/etc/httpd/conf/ssl.key
/etc/httpd/conf/ssl.crt
1 2 |
# mkdir /etc/httpd/conf/ssl.key # mkdir /etc/httpd/conf/ssl.crt |
md5 ダイジェスト値を擬似乱数の情報を生成します。
1 2 3 |
# cd /etc/httpd/conf/ssl.key # openssl md5 * > rand.dat |
作成した擬似乱数ファイル(rand.dat)から、秘密鍵を作成します。
パスフレーズを求められますが、パスフレーズは忘れないようにメモしておきます。
指定したファイル名 (newkey.pem) で、秘密鍵ファイルが作成されます。
1 2 3 4 5 6 7 8 |
# openssl genrsa -rand rand.dat -des3 2048 > newkey.pem 47 semi-random bytes loaded Generating RSA private key, 2048 bit long modulus ...................+++ ......+++ e is 65537 (0x10001) Enter pass phrase: Verifying - Enter pass phrase: |
作成した秘密鍵ファイルからCSRを生成します。
下記のようなディスティングイッシュネーム情報を入力する必要があります。
Country (国名) | 半角大文字で JPと入力 |
---|---|
State (都道府県名) |
都道府県名をローマ字表記で入力 |
Locality (市区町村名) |
市区町村名をローマ字表記で入力 |
Organizational Name (組織名) |
正式英語組織名 (会社名・団体名など)を入力 |
Organizational Unit (部門名) |
部門名・部署名など、任意の判別文字列を入力 ※同一コモンネームでの複数申請は、この項目の指定文字列を変更して申請件数分CSRを生成します。 |
Common Name (コモンネーム) |
URL(SSL/TLS接続の際のURL:FQDN)を入力 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
#openssl req -new -key newkey.pem -out newcsr.pem Enter pass phrase for newkey.pem: You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Country Name (2 letter code) [XX]:JP State or Province Name (full name) []:Hyogo Locality Name (eg, city) [Default City]:Kobe Organization Name (eg, company) [Default Company Ltd]: (会社名) Organizational Unit Name (eg, section) []:System Common Name (eg, your name or your server's hostname) []: (ワイルドカードのドメイン名) Email Address []: Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []: An optional company name []: |
以上で、newkey.pemというCSRが生成されます。
続いてネットオウルの管理コンソールでの作業です。
コモンネームにワイルドカードの
ドメイン名、
CSR入力欄にサーバーで生成したnewkey.pemの中身
を貼り付けます。
「次へ進む」を押します。
正しく登録すると、登録された承認メールアドレス宛てにメールが届きます。
このメッセージは、セキュアコアのSSL証明書の申請時に
選択された「承認用メールアドレス」宛に送信しております。
以下のコモンネームに対しSSL証明書が申請されました。
■コモンネーム
*.xxx.xxx.xxx
申請を承認する場合は、以下のURLにアクセスし、"validation code"を入力してください。
URL:https://secure.comodo.net/products/EnterDCVCode?orderNumber=xxxxxxxx
validation code:owdB5xxxxxxxxxxxxxxxxxxxxxx
承認手続きに関するご質問やご不明な点は、販売代理店までお問い合わせください。
----------------------------------------------------------------------
セキュアコア株式会社
クラウドセキュア株式会社クラウドセキュア株式会社のコーポレートサイトです。クラウドセキュア株式会社は増え続けるサイバー攻撃からWebサイトを守るセキュリティ対策サービスを開発・提供しています。Webサイトに一歩進んだ安心を提供すべく、お客様の信頼に応えてまいります。
メールに書いてあるURLをクリックして、validation codeを入力します。
しばらく待って、ネットオウルの管理画面を見てみると、SSL証明書と中間証明書がダウンロードできるようになっていました。
SSL証明書と中間証明書をダウンロードして、Apacheのサーバー側にコピーしておきます。
ApacheでのSSL証明書の設定手順
SSL証明書と中間証明書を
/etc/httpd/conf/ssl.crt にコピーしておきます。
次に、ヴァーチャルホスト(仮想ホスト用)の設定ファイル
/etc/httpd/conf.d/sample.conf
を開いてポート443の設定に
SSLCertificateFile、
SSLCertificateKeyFile、
SSLCertificatteChainFile
を追加します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
<VirtualHost *:80> ServerName aaa.bbb.ccc DocumentRoot /var/www/aaa LogLevel warn ErrorLog logs/aaa_error_log CustomLog logs/aaa_access_log combined # 常時SSL化 <IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{SERVER_PORT} !^443$ RewriteRule ^(.*)$ https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L] </IfModule> <Directory "/var/www/aaa"> Options FollowSymLinks AllowOverride All Require all granted </Directory> </VirtualHost> <VirtualHost *:443> ServerName aaa.bbb.ccc DocumentRoot /var/www/aaa # SSL設定 SSLEngine on SSLProtocol all -SSLv2 SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5:!SEED:!IDEA SSLCertificateFile /etc/httpd/conf/ssl.crt/CORESSLWC1101995.cert SSLCertificateKeyFile /etc/httpd/conf/ssl.key/newkey.pem SSLCertificateChainFile /etc/httpd/conf/ssl.crt/CORESSLWC1101995Int.cert LogLevel warn ErrorLog logs/aaa_ssl_error_log CustomLog logs/aaa_ssl_access_log combined <Directory "/var/www/aaa"> Options FollowSymLinks AllowOverride All Require all granted </Directory> </VirtualHost> |
mod_rewriteの設定で、常時SSL化も実現されます。
常時SSL化しておけば、httpで接続しようとしてもhttpsにリダイレクトされて、通信が常時暗号化されます。
Apacheを再起動します。
パスフレーズの入力が求めれます。
1 2 |
# systemctl restart httpd.service Enter SSL pass phrase for tk2-206-12914.vs.sakura.ne.jp:443 (RSA) : ******** |
サーバーをrebootコマンドで再起動しようとすると、Apacheを自動起動に設定していてもパスフレーズで待ち状態となって、Apacheが起動しないので注意が必要です。
ブラウザで確認
設定が正しいことをブラウザで確認します。
上記の仮想ホストの場合、
・http://aaa.bbb.ccc
を開くと
・https://aaa.bbb.ccc
にリダイレクトされます。
ブラウザから以下のように見えれば正解です。
めんどくさいけど、ここまで数時間の作業で完了出来ます。
さくらのVPSサーバー
↓月額685円からの低価格&高パフォーマンスのVPS、さくらのVPSはコチラ
SSDプランが月々685円から使える!さくらのVPS
コメント
[…] […]