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 のディスリで締めくくる。
