当サイトも、いよいよ、SSLを取りました。
一昔前まで、自サバごときで、SSL認証するなんて、金銭的に無理かなって思ってました。
しかし、最近は、激安で認証してくれるようになってたんですね。
なんと、3年で$10ちょっと、日本円で1400円ぐらいでしょうか。
GoGetSSLっていうとこです。
この夏には、Let's Encryptなる団体が、無料配布するとか・・
さらに、googleもSSLサイトを優先的に検索の上位にしてくれるそうだとか。
そこで、当サイトも激安認証でSSL化することにしました。
ちなみに、FreeBSD + Apacheの構成となります。
では、やってみましょう。
環境としては、OpenSSLが使用できる状態であることです。
apacheを導入していれば入っていると思います。
ちなみに、認証は、ドメイン名に対して認証してもらうので、必ず、MyDNS等でドメイン名を取得しておいて下さいね。
1.
まずは、秘密鍵の作成です。
とりあえず、作業場所に移動しましょう。
cd /etc/ssl <- 環境に合わせて、ちゃんと、セキュアな場所を確保しましょうね。
作成するコマンドは、以下です。
openssl genrsa -out private.pem 2048
これで、private.pemという、ファイルが出来ます。
これが秘密鍵となりますので、大切に保管して下さい。
2.
次にCA(今回の場合、GoGetSSL)さんに作った秘密鍵に署名をしてもらう為に要求書を作成します。
openssl req -new -key private.pem -out request.csr
Country Name (2 letter code) [AU]:JP <-とりあえず、日本ということで
State or Province Name (full name) [Some-State]:xxxxx <- 市等
Locality Name (eg, city) []:xxxxx <-都道府県
Organization Name (eg, company) [Internet Widgits Pty Ltd]:xxxxx <-名前
Organizational Unit Name (eg, section) []: <-組織なんとか、空で良いです
Common Name (e.g. server FQDN or YOUR name) []:domain.com <-ここ重要 署名するドメイン名です。 今回、domain.comということにしますので、ご自身のドメインに置き換えて読んで下さいね。
Email Address []:xxxxx <-メールアドレス
A challenge password []: <- 空が便利です。
An optional company name []: <-空で良いです。
これで、request.csrという、ファイルが出来ます。
これが要求書となります。一時的に必要なだけです。
3.
次にGoGetSSLに行って、契約します。
Domain ValidationをのViewSSLListを押しましょう。
Comodo Positive SSLが、安くって良いでしょう。
Buy SSLボタンを押下して、年数を押して、Create New accountを行います。
ここの写真は、既に取った後なんですが、本来、新規登録用にCreate New accountボタンがあったと思います。
支払い方法を選択します。
当方は、PayPalを選択しました。
アカウント登録が完了して、ログインするのかな この辺りは、忘れましたが。
次にドメインを登録します。
この作業で、2で入力したドメインが必要なので、間違え無いように・・・
どこの場面か忘れましたが、2で作成した要求書の内容を貼り付ける(コピペ)必要があるので、準備して下さい。
それと、サイトの証明を取り次ぐ為に、GoGetSSLが3つの方法を提案してきます。
メール、DNS、サイト(HTTP)にハッシュファイルです。
メール、DNSは、敷居が高いので、対象ドメインのルートにGoGetSSLが示したファイルを置くことで、認証します。
具体的には、apacheで公開している設定値のDocumentRootが示しているパスに、ダウンロードしたファイルを置けば良いです。
すると、次のステップに進めるので、後は、アクティブになるまで待機です。
10分程度だったと思います。
サイトにログインして、Manage SSL certificatesを確認しましょう。
すると、認証済みのdomain_com.crtとdomain_com.ca-bundleが入ったzipファイルをダウンロード出来るようになっています。
中身を /etc/sslにでも、解凍しましょう。
4.
最後にapacheに仕込みます。
用意するのは、以下です。
/etc/ssl/private.pem <- 1.で作成した秘密鍵です。
/etc/ssl/domain_com.crt <- 3.でダウンロードした認証キーです。
/etc/ssl/domain_com.ca-bundle <- 3.でダウンロードした中間CAキーです。
apacheの設定ファイルを作成しましょう。
vi /usr/local/etc/apache24/Includes/sslsetting.conf
Listen 443
<VirtualHost _default_:443>
SSLEngine on
SSLCertificateFile "/etc/ssl/domain_com.crt"
SSLCertificateKeyFile "/etc/ssl/private.pem"
SSLCertificateChainFile "/etc/ssl/domain_com.ca-bundle"
SSLProtocol -ALL -SSLv2 -SSLv3 +TLSv1 +TLSv1.1 +TLSv1.2
SSLCipherSuite AES128-GCM-SHA256:ECDHE-RSA-AES128-SHA256:!RC4:HIGH:!EXP:!IDEA:!SEED:!EDH:!aNULL:!eNULL
SSLHonorCipherOrder on
Header always set Strict-Transport-Security "max-age=315360000; includeSubDomains"
SSLVerifyClient optional
</VirtualHost>
最後に、SSLを確認しましょう。
どうでしょうか、一手間、ありますが、立派なSSLサイトが完成しました。
みんなに自慢しましょう。