セルフホストしたGitLabにhttpsでアクセスできるようにする。ドメイン名を使用せず、警告を出さずに――
環境
手順
下準備
- sudoを打たなくていいようにする
sudo su -
cd /etc/ssl mkdir myCA cd myCA mkdir newcerts mkdir certs mkdir crl mkdir private chmod 700 private
証明書作成
- 秘密鍵を作成する
openssl genrsa 2048 > server.key
- 証明書署名要求を作成する
openssl req -new -key server.key > server.csr
対話モードで入力するパラメータは適宜入力する。
Common Nameは必須で適当に入力すること。
他は空でOK。
openssl x509 -days 36500 -req -signkey server.key < server.csr > server.crt
36500
は有効期限を示す。
- opensslの設定ファイル変更
nano /etc/pki/tls/openssl.cnf
変更点のみ記載
[ CA_default ] dir = /etc/ssl/myCA certificate = $dir/ca.crt private_key = $dir/ca.key [ usr_cert ] subjectAltName = @alt_names [ req ] req_extensions = v3_req [ v3_req ] subjectAltName = @alt_names #追記 [ alt_names ] DNS.1 = localhost IP.1 = 192.168.33.10 IP.2 = 127.0.0.1
- オレオレ証明局の秘密鍵と証明書ファイルを作成
openssl req -new -x509 -sha256 -days 36500 -newkey rsa:4096 -out ca.crt -keyout private/ca.key
openssl rsa -in private/ca.key -out private/ca.key
openssl req -new -sha256 -days 36500 -newkey rsa:4096 -out server.csr -keyout private/server.key
openssl rsa -in private/server.key -out private/server.key
openssl x509 -req -in server.csr -CA ca.crt -CAkey private/ca.key -CAcreateserial -out server.crt -days 36500 -sha256 -extensions SAN -extfile <(printf " [SAN] subjectAltName=@alt_names basicConstraints=CA:FALSE [alt_names] DNS.1=localhost IP.1=192.168.33.10 IP.2=127.0.0.1")
cp -i private/server.key /etc/pki/tls/private/ cp -i server.crt /etc/pki/tls/certs/ chmod 400 /etc/pki/tls/private/server.key chmod 400 /etc/pki/tls/certs/server.crt
ca.crt をrsyncなりsambaなりでクライアントPCに保存する
クライアントPCのブラウザでca.crt をインポートする
GitLab設定
- GitLabの設定ファイル変更
nano /etc/gitlab/gitlab.rb
external_url 'http://localhost' ↓ external_url 'https://192.168.33.10' # nginx['ssl_certificate'] = "/etc/gitlab/ssl/#{node['fqdn']}.crt" # nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/#{node['fqdn']}.key" ↓ nginx['ssl_certificate'] = "/etc/pki/tls/certs/server.crt" nginx['ssl_certificate_key'] = "/etc/pki/tls/private/server.key"
- 設定ファイルの変更を適用
gitlab-ctl reconfigure
- ブラウザで動作確認