見出し画像

nginxにSSLサーバー証明書を設定します

今回はさくらのSSLでJPRS ドメイン認証型のサーバー証明書を購入して、さくらVPSに設置します。
WEBサーバーはnginxです。

秘密鍵の作成

秘密鍵のパスワードを設定します。
確認用がでますのでもう一度入力します。

$ openssl genrsa -des3 -out ./ssl.key 2048
$ Enter pass phrase for ./ssl.key:
$ Verifying - Enter pass phrase for ./ssl.key:

CSRの作成

作成した秘密鍵ファイルからCSRファイルを生成します。
入力必須項目は、以下6項目です。
Country Name
State or Province Name
Locality Name
Organization Name
Organizational Unit Name
Common Name

以下も表示されますが入力不要です。

Email Address
A challenge password
An optional company name
何も入力せず[Enter]キーを押して進んでください。

$ openssl req -new -key ./ssl.key -out ./ssl.csr
Enter pass phrase for ./ssl.key:

Country Name (2 letter code) [XX]:JP
State or Province Name (full name) []:Tokyo
Locality Name (eg, city) [Default City]:Shibuyaku
Organization Name (eg, company) [Default Company Ltd]:company
Organizational Unit Name (eg, section) []:secsion
Common Name (eg, your name or your server hostname) []:example.com
Email Address []:
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:

CSRが生成されるのでコピーします。

$ cat ssl.csr
-----BEGIN CERTIFICATE REQUEST-----
(ここに鍵が表示されます)
-----END CERTIFICATE REQUEST-----

サーバー証明書の発行申込

JPRS ドメイン認証型の申し込み画面で先ほどコピーしたCSRを貼り付けます。

CSRの登録が終わったらドメイン認証作業に移ります。
ドメインの公開情報(Whois)のメールアドレスにメールが届いて確認登録するか、サーバーにファイルをおいて認証してもらうかが選択できます。
今回はファイル認証の方法をとりました。

数分後にファイル設定のメールが届くのでFTPでサーバーに設置します。
指定URLでファイルの内容が表示されるかを確認してください。

指定のフォルダに認証ファイルをアップロードしてしばらくするとJPRS社にてファイル認証が行われます。

数分ほどして認証が完了すると「 JPRS SSLサーバ証明書発行のお知らせ 」のメールが届きます。
メールに記載のURLからSSLサーバ証明書のダウンロードと中間CA証明書のダウンロードを行います。

sslサーバ証明書と中間CA証明書を張り合わせます。

$ cd  /etc/nginx/sites-available/

$ vi ssl.crt

#証明書を貼り付ける
$ vi ssl.crt
-----BEGIN CERTIFICATE-----
(鍵)
-----END CERTIFICATE-----
 
#中間証明書を貼り付ける
$ vi cushion.cer
-----BEGIN CERTIFICATE-----
(鍵)
-----END CERTIFICATE-----

#証明書と中間証明書を合わせる
$ cat ssl.crt cushion.cer > ssl.pem

nginxの設定ファイルに証明書へのパスを登録します。

$ sudo vim /etc/nginx/sites-available/wordpress.conf
server {
    listen 443;
    server_name  example.com;

    ssl on;
    ssl_certificate ssl.pem;
    ssl_certificate_key ssl.key;

#(略)
}

nginxを再起動します。

$ sudo systemctl restart nginx.service

これでhttpsでアクセスできるようになりました。

httpからhttpsに転送設定するには下記の設定をします。

server {
    listen 80;
    server_name example.com;
    return 301 https://$host$request_uri;
}

server {
    listen 443;
    root /var/www/html/;
    index  index.php index.html index.htm;
    server_nam example e.com;

    ssl on;
#(略)

まとめ

基本的にはapacheと同じ設定方法です。
nginxの方が設定ファイルがシンプルな分、
楽かもしれません。

いいなと思ったら応援しよう!