LoginSignup
2
3

More than 1 year has passed since last update.

VirtualBox上に構築したUbuntu20.04LTS(Desktop)にGitlabをインストールして自己署名証明書によりHTTPSアクセスする方法

Posted at

VirtualBox上に構築したUbuntu20.04LTS(Desktop)にGitlabをインストールして自己署名証明書によりHTTPSアクセスする方法

前回」、SambaをインストールしたUbuntu20.04LTS(Desktop)に、Gitlabをインストールしてみました。

GitLabをUbuntuにインストール

公式サイトの解説に従ってインストールします。

公式サイトの説明では、GitLab Enterprise Editionをインストールすることをお勧めしています。説明を見たら、お金を払わずにEnterprise Editionを使った場合でも、Community Editionを使った場合と同等であることの説明がありました。

なので、推奨の通り、Enterprise Editionをインストールします。

依存パッケージのインストール

以下のコマンドを入力して、依存パッケージをインストールします。

$ sudo apt update
$ sudo apt-get install -y curl openssh-server ca-certificates

次に、メールの通知を送信するために、Postfixをインストールします。

$ sudo apt-get install -y postfix

Postfixのインストール中に設定画面が表示されます。
もしもその時は、'Internet Site'を選択してEnterを押し、
"mail name"には、サーバーの外部DNS名を入力してEnterを押してください。もしも追加の画面が表示される場合は、デフォルト値のまま、Enterを押してください。

2021-06-14.png

2021-06-14 (1).png

GitLabパッケージのリポジトリへの追加とインストール

GitLabパッケージをリポジトリに追加するため、以下のコマンドを入力します。

$ curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ee/script.deb.sh | sudo bash

次に、GitLabパッケージをインストールします。自己署名証明書(いわゆるオレオレ証明書)を使う場合、後で設定しますので、ここではhttpプロトコルでサーバーを指定します。

自分の場合、次のようになりました。

$ sudo EXTERNAL_URL="http://ubuntu-srv" apt-get install gitlab-ee

自己証明証明書を作成する

以下の記事を参考にして、自己署名証明書を作成してみます。

$ mkdir ssl
$ cd ssl
$ vi subjectnames.txt
subjectAltName = DNS:gitlab.example.jp, IP:192.168.56.2
$ openssl genrsa 2048 > server.key
$ openssl req -new -key server.key -subj "/CN=gitlab.example.jp" > server.csr
$ openssl x509 -days 3650 -req -extfile subjectnames.txt -signkey server.key < server.csr > server.crt
$ openssl x509 -in server.crt -text -noout

ここで使用している、example.jp というドメイン名は、自由に使ってよいドメイン名になります。
その解説については、以下の記事に書かれていました。

作成した証明書をgitlabに組み込んでみます。
以下の記事を参考にしました。

sudo mkdir /etc/gitlab/ssl/
sudo chmod 700 /etc/gitlab/ssl
sudo cp ./server.crt /etc/gitlab/ssl/gitlab.example.jp.crt
sudo cp ./server.key /etc/gitlab/ssl/gitlab.example.jp.key
sudo chmod 404 /etc/gitlab/ssl/gitlab.example.jp.crt
sudo chmod 400 /etc/gitlab/ssl/gitlab.example.jp.key
sudo vi /etc/gitlab/gitlab.rb

external_url 'https://gitlab.example.jp'

#1338行目あたり
NGINXのセクション内のコメントアウトを解除します。
################################################################################
## GitLab Web server
##! Docs: https://docs.gitlab.com/omnibus/settings/nginx.html#using-a-non-bundled-web-server
################################################################################

#nginx['ssl_certificate'] = "/etc/gitlab/ssl/#{node['fqdn']}.crt"
#nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/#{node['fqdn']}.key"
↓
nginx['ssl_certificate'] = "/etc/gitlab/ssl/gitlab.example.jp.crt"
nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/gitlab.example.jp.key"


設定を有効にする

以下のコマンドを投入し、再設定します。

$ sudo gitlab-ctl reconfigure
$ sudo gitlab-ctl restart

hostsファイルを修正する

WindowsPCのhostsファイルを修正します。
hostsファイルは、C:\Windows\System32\drivers\etc に保存されています。

ホストファイルは、書き込み保護がされているので、ファイルのプロパティ-セキュリティタブから編集ボタンをクリックします。

Usersを選択し、アクセス許可からフルコントロールにチェックを入れ、OKボタンをクリックします。警告のダイアログが出ますが、受け入れてください。
2021-06-16 (1).png

ファイルを開いて、以下の内容を追加します。
設定値については、適宜自分のサーバー設定に合わせて変更してください。

192.168.56.2 gitlab.example.jp

編集が完了したら、アクセス許可の設定を元に戻してください。
フルコントロール、変更、書き込みのチェックを外して、OKボタンを押すと元に戻ります。

ブラウザに自己署名証明書を取り込む

以下のURLにアクセスします。アクセスすると赤くなると思います。

https://gitlab.example.jp

2021-06-16 (2).png

保護されていない通信の部分をクリックして、警告を参照します。
pic073.png

証明書(無効)となっている部分をクリックして、証明書を確認します。
2021-06-16 (4).png

詳細タブから、ファイルにコピーのボタンをクリックします。
2021-06-16 (5).png

証明書のエクスポートウィザードが始まるので、すべてデフォルトを受け入れて、証明書ファイルを保存してください。

証明書ファイルが保存できたら、保存した証明書ファイルをダブルクリックして、証明書ファイルを信頼されたルート証明機関に登録します。

この辺の詳しいやり方については、この解説記事に詳しく書かれています。

解説記事のとおりではあるのですが、実際にやってみて記事にしないといけないなと思い、やってみます。

証明書をダブルクリックすると以下のようなエラーっぽい証明書が表示されます。自己署名証明書なので、この証明書を信頼されたルート証明書機関ストアにインストールしてください。という指示が表示されています。
2021-06-17.png

証明書のインストールのボタンをクリックし、インポートウィザードを起動します。

2021-06-17 (1).png

保存場所は、現在のユーザーで構いません。次へボタンをクリックします。

証明書をすべて次のストアに配置するを選択し、参照ボタンをクリックします。

証明書のストアは、信頼されたルート証明機関を選択し、OKボタンをクリックします。
2021-06-17 (2).png

選択できたので、次へボタンをクリックします。
2021-06-17 (4).png

完了ボタンをクリックします。
セキュリティ警告のポップアップが表示されるので、はいを選択し、受け入れます。

正しくインポートされましたと表示されたら、終了です。

確認

すべてのChromeウィンドウを閉じて、サイトにアクセスしてみます。

赤い表示が消えました。
2021-06-17 (6).png

おわりに

とりあえず、以上で記事は終了になります。

2
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3