WSL2

>

WSL2 Nginx OpenSSLでlocalhost SSL/TLS(HTTPS)接続を可能にする手順

cat /etc/os-release
out
NAME="AlmaLinux"
VERSION="9.7 (Moss Jungle Cat)"

 

WSL2 のようなローカルサーバーでドメインを割り当てるのもなんだし・・・、けど localhost であっても Windows 側ブラウザから https でアクセス出来るようにしたいので下記の手順を踏む
Wsl2 でカレント /mnt/c/Users/ユーザー名 で行った方が後々、都合が良いと思う
 

CA(認証局) 用の秘密鍵を作成

openssl genrsa -out localCA.key 2048

 

秘密鍵と CSR(証明書署名要求) 作成

openssl req -batch -new -key localCA.key  -out localCA.csr -subj "/C=jp/ST=Tokyo/L=Shinjuku-ku/O=SGITL/OU=SGITL_CA/CN=fuckyou"

 

CA 証明書作成

openssl x509 -req -days 3650 -signkey localCA.key -in localCA.csr -out localCA.crt

 

サーバー用の秘密鍵を作成

openssl genrsa -out localhost.key 2048

 

秘密鍵とCSRを作成

openssl req -batch -new -key localhost.key  -out localhost.csr -subj "/C=jp/ST=Osaka/L=Osaka-shi/O=SGITL/OU=SGITL_CA/CN=localhost"

 

証明書に付加する SAN(サブジェクトの別名) を入れたテキストファイル作成

echo 'subjectAltName = DNS:localhost, DNS:localhost.localdomain, IP:127.0.0.1, DNS:app, DNS:app.localdomain' > localhost.csx

 

サーバー証明書を作成

openssl x509 -req -days 1825 -CA localCA.crt -CAkey localCA.key -CAcreateserial -in localhost.csr -extfile localhost.csx -out localhost.crt

 

/etc/nginx/ssl が存在しなければ作成

mkdir -p /etc/nginx/ssl

 

出来上がった localhost.key と localhost.crt を /etc/nginx/ssl にコピー

cp localhost.key localhost.crt /etc/nginx/ssl

 

Nginx 設定

 server {
        listen       443 ssl http2;
        listen       [::]:443 ssl http2;
        server_name  localhost;
        root         /var/www/html;

        ssl_certificate "/etc/nginx/ssl/localhost.crt";
        ssl_certificate_key "/etc/nginx/ssl/localhost.key";
        ssl_session_cache shared:SSL:1m;
        ssl_session_timeout  10m;
        ssl_ciphers PROFILE=SYSTEM;
        ssl_prefer_server_ciphers on;

 

Nginx リスタート

systemctl restart nginx

Windows 側 /mnt/c/Users/ユーザー名 にある localCA.crt をダブルクリックして実行、「証明書のインストール」、現在のユーザーで次へ、「証明書をすべて次のストアに配置する」を選択し、証明書ストアの参照から「信頼された証明機関」を選択し次へ、OK

https://localhost でブラウザからアクセスしてみる

Microsoft Edge ではすんなり https でアクセスで出来るようになったが Firefox においては、設定 → プライバシーとセキュリティ → セキュリティ → 証明書を表示 → 例外を追加、で今回作成した証明書を「例外」として追加しないとダメだった。

Firefox は実在する正規の CA(認証局)のリストと照合したうえで警告を出しているようで、ある意味、当然のふるいまい。だとしたら Microsoft Edge ってセキュリティ的にどうなの?・・・と言いたくなる。

余談だけど、最近ネットリサーチしてると Ubuntu 向けの解説ばっかりのような気がする。むかし Ubuntu をイジってた頃は Red Hat 系をベースにした解説ばかりだったのに・・・どうも自分は時代の波に逆らって生きているような気がする。
でもやはり apt-get は馴染めない。dnf のほうがシックリくる。
Ubuntu 名前がダサい。雰囲気もダサい。
AlmaLinux 自然でカッコいい。
というわけで Ubuntu のディスリで締めくくる。