SSL初心者設定!黒い画面は怖くない、NginxでSSLを設定するお話

サムネイル

こんにちは。お久しぶりです山王です。
今日はnginxでSSL通信を行うための設定を紹介します。

導入環境

  • OS…Linux CentOS 7
  • webサーバー…nginx

今回はさくらインターネットでSureServer企業認証SSLを申し込み、上記のケース以外もやることはほとんど変わらないと思います。

SSL化の手順

さくらインターネットにログイン

さくらインターネットにログイン

今回は赤で囲った企業認証SSLで行っていきます。しかしラピッドSSL安いですね~
内容は割愛しますが、順に沿って会社情報などを入力していってください。

CSR(証明書情報)の内容確認

ここでいったんストップ。これ以降は黒い画面を少し触ったりします。でも大丈夫です。まずはCSRを作成しましょう

CSR・秘密鍵を作成

ターミナルやteratermなどでサーバーにログインします。
秘密鍵ファイル・証明書ファイルを設置するディレクトリを作成し、そこに移動してください。

mkdir /etc/nginx/ssl_certs
cd /etc/nginx/ssl_certs

秘密鍵作成

openssl genrsa -des3 -out (秘密鍵ファイル名) (キー長)

秘密鍵生成時には、必ず2048bitを指定してください。
以下例になります。

openssl genrsa -out example.com.2016.key 2048

CSRの作成

openssl req -new -sha256 -key example.com.2016.key -out example.com.2016.csr

以下は弊社の例になります(項目がない箇所は空欄でエンター)

Country Name :JP
State or Province Name:osaka
Locality Name:osaka
Organization Name:UNIONNET Inc.
Organizational Unit Name:
Common Name:unionnet.jp
Email Address:
A challenge password:
An optional company name

作業ディレクトリの中を確認してください。lsと打つとカレントディレクトリの内容が見れます。example.com.2016.csrができていると思います。

証明書申し込み

vi example.com.2016.csr

中身を全部コピーし、さくらインターネットの申し込みページのCSR(証明書情報)の内容確認ページでペースト。表示された内容で問題なければそのまま申し込みしてください。

さくらインターネットよりメールが来るので証明書ダウンロード用のパスワードを保存しておいてください。今回は企業認証なので数日後に会社が存在するか認証局から電話が来ます。確認が取れると証明書が発行されメールが届きます。

証明書をダウンロード

メールに記載されたURLからそれぞれの証明書をダウンロードします。中間証明書のダウンロードですが、ダウンロード先に行くと3つダウンロード先があるので

SureServer for SAKURA [Apache/IIS共通]

をダウンロード今回はPUBCAG3.txtで作成します。サーバー証明書をダウンロードすると***.cerというファイルがダウンロードされるのでリネームもしくはそのまま使用今回はexample.cerでいきます

証明書のインストール

「PUBCAG3.txt」「example.cer」を/etc/nginx/ssl_certs/にアップロードしていきます。

ssl_certs に移動

cd /etc/nginx/ssl_certs/

中間証明書とサーバー証明書を連結

cat example.cer PUBCAG3.txt > example.com.2016.pem

カレントディレクトリの中を確認するとexample.com.2016.pemができていると思います。

vi example.com.2016.pem
<div class="reference">-----END CERTIFICATE-----<br>-----BEGIN CERTIFICATE-----</div>

となるように改行を入れます。※僕はこれを忘れていて中間証明書が無きものにされてました・・

confファイルを編集

vi /etc/nginx/***.conf/

server {
  listen 443;
  ssl on;
  ssl_protocols  TLSv1 TLSv1.1 TLSv1.2;
  ssl_certificate  /etc/nginx/ssl_certs/example.com.2016.pem;
  ssl_certificate_key /etc/nginx/ssl_certs/example.com.2016.key;
}

nginx -t」エラーが無ければ「systemctl restart nginx

SSL通信確認

openssl s_client -connect www.example.com:443 -showcerts

Verify return code: 0 (ok)

になればおk
WEB上でも確認可能です。
https://sstool.cybertrust.ne.jp/support_tool/index01.php

設定確認して問題なければ完了です。

最後に

いかがでしたか?

レンタルサーバーなどに比べると多少めんどくさいですよね。エックスサーバーのドメイン認証SSLなんてほんの数分で終わりますからねw

今回やったの作業は黒い画面多少触りますが難易度はさほど高くないですね。今後SSL証明書の更新をするために忘れないようにしたいと思います。

この記事を描いたひと

UNIONNET Inc. スタッフ

株式会社ユニオンネットのスタッフ。
https://www.unionnet.jp/company/#staff

  • Copied!

TAGS