Help us understand the problem. What is going on with this article?

さくらのVPSにnginxをインストールしSSLサーバ証明書を導入する

More than 3 years have passed since last update.

さくらのアドベントカレンダー(その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 の部分は centosOSRELEASE の部分は 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の入力以外では難しいことはありませんので、そのまま購入に進みます。

購入後の流れ

次のように、証明書のダウンロードまで手順が進みます。
さくらの会員宛にメールが送られてきますので、その手順に沿って手続きをする流れになります。

  1. ドメイン使用権の確認
    1. さくらの会員メニューから証明に利用するファイルをダウンロード
    2. ダウンロードしたファイルを申請した FQDN 配下にアップロード
    3. アップロードしたファイルが自動的に検知されてドメイン使用権の確認OK
  2. さくらの会員メニューから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。

t-mimura
さくらインターネットでフロントエンドの開発をしています。 基本は自分の備忘録です。自分以外の誰かの役に立てばなお良しです。 お仕事の依頼もお待ちしています。
sakura_internet
さくらレンタルサーバ、さくらのVPS、 さくらのクラウド、さくらの専用サーバなどのインターネットサービス・ITプラットフォームを提供しています。
https://www.sakura.ad.jp/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away