📚 シリーズ目次
- ①純DebianのXfce仕立て、Mintテーマを添えて
- ②HTTPSよ、サービス基盤の礎となるがよい。
- ③SVNサーバよ、セキュアに稼働せよ。
- ④Gitサーバよ、ついでに稼働する?
1. はじめに
GitサーバはSSH接続で特に不都合も感じていなかったのですが、話の流れでHTTPS接続もさせてみます。現状は個人ユースですが、チームでの開発とかだったらSSH接続できる状態はセキュリティ面の担保に手間を要しそうなので。
サーバ環境の構築には、先日セットアップしたMint風味の純Debianを使用します。
SSH接続のGitサーバを構築した記事はこちらです。
2. 環境のセットアップ
2.1 Gitのインストール
以下のコマンドで必要なパッケージをインストールします。GitでHTTPS接続を行うためのCGIモジュールは、Gitと一緒に導入されます。
sudo apt install git
2.2 Gitの公開設定
続いて、Apacheでの公開設定を編集します。まずは、Gitリポジトリ用のフォルダを準備しましょう。作成済みのフォルダがあるので、所有者を www-data に変更します。
sudo chown www-data:www-data /var/lib/git
それでは、設定ファイルを作成します。以下をコピペして作成ください。
sudo nano /etc/apache2/sites-available/git.conf
<VirtualHost *:443>
ServerName debian.home.arpa
SSLEngine on
SSLCertificateFile /etc/ssl/certs/debian.crt
SSLCertificateKeyFile /etc/ssl/private/debian.key
SetEnv GIT_PROJECT_ROOT /var/lib/git
SetEnv GIT_HTTP_EXPORT_ALL
ScriptAlias /git/ /usr/lib/git-core/git-http-backend/
<Directory /usr/lib/git-core>
Options +ExecCGI
Require all granted
</Directory>
<Location /git>
AuthType Basic
AuthName "Git Repository"
AuthUserFile /etc/apache2/cgi_git.passwd
Require valid-user
</Location>
</VirtualHost>
変更を保存したら、モジュールを有効化してApacheを再起動します。
sudo a2enmod cgi
sudo a2ensite git.conf
sudo systemctl restart apache2
2.3 ユーザの設定
初回は以下のコマンドでユーザを設定します。コマンドを実行するとパスワード入力を要求されるので、同じものを2回入力してください。
sudo htpasswd -cm /etc/apache2/cgi_git.passwd ユーザ名
ユーザを追加する場合は、こちらのコマンドを使用してください。-c オプションが存在すると、既存ユーザの情報がすべて消失します。
sudo htpasswd -m /etc/apache2/cgi_git.passwd ユーザ名
3. HTTPS経由での接続
3.1 リポジトリの作成
リポジトリ作成の前に、Gitの設定をしてしまいましょう。以下のコマンドで設定します。クライアントPCも同様に設定してください。
sudo git config --system init.defaultBranch main
sudo git config --system user.name "$(hostname)"
sudo git config --system user.email user@example.com
git config --global init.defaultBranch main
git config --global user.name "$(hostname)"
git config --global user.email user@example.com
それでは、リポジトリを作成してHTTPS経由でのアクセスを確認します。以下のコマンドで作成してください。リポジトリ名は my-second-repo とすることにします。
sudo -u www-data mkdir /var/lib/git/my-second-repo
cd /var/lib/git/my-second-repo
sudo -u www-data git init --bare
3.2 クライアントPCでのクローン
リポジトリが作成できたら、クライアントPCでクローンしてみましょう。Git作業用のフォルダ(~/GIT など)で右クリックして、「RabbitVCS Git」から「Clone」を選択します。「URL」欄に以下をコピペしてOKボタンをクリックすると、リポジトリがクローンされます。
クライアントPCは Linux Mint 22.2 Cinnamon Edition を使用しています。
https://debian.home.arpa/git/my-second-repo
初回接続時は、ユーザ名とパスワードの入力が求められます。事前に以下のコマンドを実行しておくことで、次回以降は自動で認証されます。
git config --global credential.helper store
HTTPはPOSTサイズが制限を受けるため、リポジトリの復旧などでGB単位のデータをプッシュすると失敗します。SSH接続などの回避策が必要です。
4. まとめ
どうでしょうか。POSTサイズの制限があるので、管理者はSSH接続ができるようにしておく必要がありそうです。とはいえ、チームメンバにSSH接続させなくて済むことは、メリットだと言えるのではないかと思います。
| ◀️ 前の記事 | 次の記事 ▶️ |
|---|---|
| Core 2 DuoでもMintしたい!③SVNサーバよ、セキュアに稼働せよ。 | セキュアサーバに、なりたいな「ハイ!rclone crypt」①QEMUでDebianを動かしてみる |



