環境
-
HW
-
Raspberry Pi 4
-
-
OS
-
Ubuntu 24.04.1 LTS
-
手順
自己署名証明書を作成
-
証明書を作成
$ mkdir certs # 10年間有効な証明書を作成する $ openssl req -x509 -nodes -days 3650 -newkey rsa:2048 \ -keyout certs/selfsigned.key \ -out certs/selfsigned.crt \ -subj "/CN=localhost" $ ls certs/ >>> selfsigned.crt selfsigned.key-
-x509-
X.509 は証明書の標準フォーマットであり、ほとんどのSSL/TLSで使用
-
-
-nodes-
秘密鍵(selfsigned.key)を暗号化せず、パスフレーズを要求されない形式で保存
-
-
-days 3650-
証明書の有効期限を設定
-
-
-out certs/selfsigned.crt-
生成した自己署名証明書を certs/selfsigned.crt に保存
-
-
-subj "/CN=localhost"-
証明書の「サブジェクト名(Subject)」を設定
-
-
NGINX用のDocker Composeを作成
-
ディレクトリを作成
$ mkdir docker/nginx_ssl $ cd docker/nginx_ssl $ mkdir ./nginx_conf ./certs ./html -
compose.ymlを作成$ nano compose.ymlversion: '3.9' services: nginx: image: nginx:latest container_name: nginx_container ports: - "10443:443" # HTTPS用ポート - "8080:80" # 必要ならHTTPも volumes: - ./nginx_conf:/etc/nginx/conf.d:ro # 複数の設定ファイルを格納するフォルダ - ./certs:/etc/nginx/certs:ro # 証明書と秘密鍵をマウント - ./html:/usr/share/nginx/html:ro # 静的コンテンツ restart: unless-stopped -
nginx用のconfigを作成
$ nano .nginx_conf/default.confserver { listen 80; server_name localhost; # HTTPからHTTPSにリダイレクト return 301 https://$host$request_uri; } server { listen 443 ssl; server_name localhost; ssl_certificate /etc/nginx/certs/selfsigned.crt; ssl_certificate_key /etc/nginx/certs/selfsigned.key; location / { root /usr/share/nginx/html; index index.html; } } -
opensslで作成した鍵をコピーする
$ cp /home/[user]/certs/selfsigned.crt certs/ $ cp /home/[user]/certs/selfsigned.key certs/ -
htmlファイルを作成する
$ cp /home/[user]/certs/selfsigned.crt certs/ $ cp /home/[user]/certs/selfsigned.key certs/ -
docker composeを実行
$ docker compose up -d
httpsでアクセス
-
https://[Server URL]でアクセスして、htmlが表示されることを確認-
警告画面が出てくるので、詳細から表示させる
-