code-server with SSL
https://coder.com/docs/code-server/latest/guide#using-a-self-signed-certificate
Raspberry Pi 上のcode-server でSSL通信を有効にしてみました。
- Webアプリ(PWA)としてのインストールは問題ありませんでした。
- Draw.ioは問題なく表示できました。
- vscode-revealのプレビューはブラウザ表示ボタンで動作しました。
環境
- Raspberry Pi 4B
- Ubuntu 23.04
- code-server 4.10.0
- mkcert 1.4.4
各種パラメタ
- ユーザ名
ubuntu
- サーバ名
ホスト名はubuntu
で、リモートからubuntu.local
でアクセス可能 - CA ディレクトリ兼証明書用ディレクトリ
/home/ubuntu/.local/share/mkcert/
- code-server 設定ファイル
/home/ubuntu/.config/code-server/config.yaml
通信
- Protocol
TLS 1.3 - Key exchange
X25519 - Server signature
RSA-PSS with SHA-256 - Cipher
AES_256_GCM
サーバ側の環境設定
- code-server の導入
curl -fsSL https://code-server.dev/install.sh | sh
sudo systemctl enable --now code-server@$USER - 念のため実行
ssh-keygen
- CA の作成以下のファイルが生成される。
sudo apt install mkcert libnss3-tools
mkcert -install- /home/ubuntu/.local/share/mkcert/rootCA.pem
- /home/ubuntu/.local/share/mkcert/rootCA-key.pem
- サーバ証明書の作成以下のファイルが生成される。
cd ~/.local/share/mkcert
mkcert ubuntu.local- /home/ubuntu/.local/share/mkcert/ubuntu.local.pem
- /home/ubuntu/.local/share/mkcert/ubuntu.local-key.pem
- code-server の設定
~/.config/code-server/config.yaml #bind-addr: 127.0.0.1:8080
bind-addr: 0.0.0.0:443
#auth: password
auth: none
cert: /home/ubuntu/.local/share/mkcert/ubuntu.local.pem
cert-key: /home/ubuntu/.local/share/mkcert/ubuntu.local-key.pem - code-server に443/tcp (1024以下のポート)へのバインドを許可
sudo setcap cap_net_bind_service=+ep /usr/lib/code-server/lib/node
- code-server の再起動
sudo systemctl restart --now code-server@$USER
クライアント側の環境設定
- ブラウザの「信頼されたルート証明機関」に
rootCA.pem
を登録 - ブラウザの「信頼された発行元」に
ubuntu.local.pem
を登録
利用
- ブラウザで
https://ubuntu.local
を開く - 必要に応じてブラウザのアドレスバーにあるボタンからWebアプリとしてインストール
Comment