自宅・社内の gitlabで最速SSL(HTTPS)対応 by docker
概要
gitlabのguiって便利ですよね、ユーザー作成したりレポジトリ作成したり。
でもデフォルトだとhttpなのでパケット見るとログインパスワードとかバレバレ。
怖い!
で、さくっと(1分以内に)SSL(TLS)対応したいけど、どうするの?ってところが本記事のミソです。
ポイントとして、証明書は作りません。
だって自分で立てたものに対して証明なんていらない、ただほしいのは通信の暗号化。
証明書なしで最速で通信暗号化の対応を紹介します。
1. デフォルトのdocker-compose.yml 確認
以下のような感じだと思います。
version: '3' services: gitLab: image: gitlab/gitlab-ce:latest restart: always hostname: '192.168.0.200' environment: GITLAB_OMNIBUS_CONFIG: | external_url 'http://192.168.0.200:6500' gitlab_rails['gitlab_shell_ssh_port'] = 6522 ports: - "6500:6500" - "6522:22" - "65443:443" volumes: - 'gitlab-config:/etc/gitlab' - 'gitlab-logs:/var/log/gitlab' - 'gitlab-data:/var/opt/gitlab' volumes: gitlab-data: gitlab-logs: gitlab-config:
2. 修正
では、修正していきます。
* 修正前箇所
GITLAB_OMNIBUS_CONFIG: | external_url 'http://192.168.0.200:6500'
- 修正後箇所
GITLAB_OMNIBUS_CONFIG: | external_url 'https://192.168.0.200:6500'
ふぅ。疲れた。
これだけです。httpのとこに[s]つけただけ。
3. 再起動そして対応終了
あとは起動
docker-compose up -d
4.通信の暗号化確認
パケットをキャプチャして確認します。
* 修正前
当然httpなのでサインインで入力したユーザー名とかパスワードがもろに見れます。画像ではパスワードの箇所はカットしてキャプチャしてます。
* 修正後
Application Dataとして暗号化されURLさえ不明に。TLS v1.2みたいですね。
余談
証明書とか考慮してないのでGoogle Chromeには真っ赤になって怒られます。 でも、関係ないよね。要件は満たした。