さくらのアドベントカレンダー(その2)の13日目です。
さくらでもフロントエンドの開発はばりばり行われていますよー。というのをアピールすべくAndroidの記事を書こうとしていましたが、全く間に合わないので、前回の記事の補足をステマ的にお送りしようと思います。
そろそろ始まります。
こんにちは。
とあることがきっかけでHTTPSで通信したくなり、持っていたVPSにnginxをインストールしてssl証明書を導入したのでその流れを書いておきます。
なにもないところからのスタートのため、おおざっぱにどんどん進みたいと思います。
VPSを借りてください
今回使ったのはさくらのVPSです。
お好きなプランで申し込んでください。
http://vps.sakura.ad.jp/
ちゃんとセキュリティのための設定を諸々してください。今回そのへんの説明は省きます。
VPSにnginxをインストールする
今回はOSを CentOS 7
にしました。そのため以下の解説は CentOS 7 向けになっています。
標準OSにあるのでコントロールパネルからぽちぽちしたらすぐに導入されます。
nginx のインストールは以下のコマンドで行います。
$ sudo yum install nginx
もし見つからない場合は、リポジトリを追加します。
(参考) 本家の解説
/etc/yum.repos.d/nginx.repo を下記の内容で作ります。
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/mainline/OS/OSRELEASE/$basearch/
gpgcheck=0
enabled=1
上記 baseurl
の OS の部分は centos
、 OSRELEASE
の部分は 7
となります。
つまり baseurl=http://nginx.org/packages/mainline/centos/7/$basearch/
です。
そのあと、インストールコマンドを以下のように実行します。
$ sudo yum install --enablerepo=nginx nginx
次のように nginx を起動します。
$ sudo systemctl start nginx
ブラウザでアクセスしてデフォルトのページが表示されればOKです。
ドメインを取得します
いちおう こちらのリンクを貼っておきます。
私はここで取り扱っていないTLDが欲しかったので、別途取得しています。
DNSのレコード設定についてはドメインを取得したサービスの説明をご確認ください。
いちおう 弊社の場合のサポート情報のリンクを貼っておきます。
SSLサーバ証明書を用意します
私はドメイン認証のみで良かったので、さくらのSSLでラピッドSSL を購入しました。
上記ラピッドSSLのページから購入ページに飛べます。購入の途中でCSRを入力する必要がありますが、CSRの作り方は下記のサイトを参考にしてください。
ジオトラスト社の OpenSSLによるCSR作成手順のページ
(その他参考情報)
弊社サポート情報 CSRの作成 (こちらの情報でいえば 「SureServer for SAKURA のCSR作成手順」が参考になると思います。)
CSRの入力以外では難しいことはありませんので、そのまま購入に進みます。
購入後の流れ
次のように、証明書のダウンロードまで手順が進みます。
さくらの会員宛にメールが送られてきますので、その手順に沿って手続きをする流れになります。
- ドメイン使用権の確認
- さくらの会員メニューから証明に利用するファイルをダウンロード
- ダウンロードしたファイルを申請した FQDN 配下にアップロード
- アップロードしたファイルが自動的に検知されてドメイン使用権の確認OK
- さくらの会員メニューからSSL証明書のダウンロード
nginx に証明書の導入
中間証明書について
まずラピッドSSLの場合は、上記でダウンロードした証明書の他に中間証明書が必要になります。こちらも送られてきたメールに取得方法が書いてるので入手します。
nginxに設定するのは、上記二つの証明書をつなげた物になりますので、作成しておきます。
鍵ファイルについて
CSRを作成する際に用いた鍵ファイルを設定しますが、
nginxをサービス(デーモン)として起動する場合、パスフレーズを入力できずに起動に失敗するので、鍵ファイルを復号化しておきます(取扱注意)。
$ cp ssl.key ssl.key.org
$ openssl rsa -in ssl.key.org -out ssl.key
$ chmod 400 ssl.key
nginxの設定
nginx の設定は 次のようになります。(抜粋)
listen 443 default ssl;
ssl on;
# 中間証明書と証明書の合体
ssl_certificate /path/to/your/cer;
# 鍵ファイルが暗号化されたままだと起動に失敗する
ssl_certificate_key /path/to/your/key;
nginx を再起動して、 https://~~~
でアクセスできれば成功です。
$ sudo systemctl reload nginx
まとめ
みんなで レッツHTTPS。