knaka Tech-Blog

AI, IoT, DIYエレクトロニクス, データサイエンスについて投稿予定です。

nginx + ubuntu で HTTPS(SSL)の設定 #php

index:

概要:

nginx の、HTTPS化で、
Ubuntu 16 の例となります。
自作SSL証明書で、chrome等では警告は、初回出ます

設定

/etc/nginx/ssl
の下に、関係ファイル作成します。


秘密鍵

sudo openssl genrsa -out /etc/nginx/ssl/server.key 2048

CSR(証明書署名要求)の作成

sudo openssl req -new -key /etc/nginx/ssl/server.key -out /etc/nginx/ssl/server.csr

「Common Name」には、サーバのドメイン名を入力します。

CRT(SSLサーバ証明書)の作成

sudo openssl x509 -days 3650 -req -signkey /etc/nginx/ssl/server.key -in /etc/nginx/ssl/server.csr -out /etc/nginx/ssl/server.crt

nginx設定

・パスの例ですが、 下記に配置して
/etc/nginx/sites-available/default.conf
リンクを、
/etc/nginx/sites-enabled/ に、追加すると、反映できました

・HTTP(80番) は通信できないように。記載せず、
443 のSSLのみに、設定

server {
    listen 443 ssl;

    #
    ssl_certificate     /etc/nginx/ssl/server.crt;
    ssl_certificate_key /etc/nginx/ssl/server.key;

    #
    root /var/www/html;

    location / {
        try_files $uri $uri/ =404;
    }
}

確認など

・nginx 再起動します

https://設置ドメイン/ で、HTTPS 通信可能となります

・自作SSL証明書で、ブラウザで警告でますが。
ページは開けます
chrome の場合 URLの左に、保護されてない通信
 と表示されます。

f:id:knaka0209:20200202102706p:plain

・正式な基地局が発行している証明書ではないので、
 証明書は無効と、表示されますね。
f:id:knaka0209:20200202103003p:plain