W systemie Windows możesz również obsługiwać repozytoria Git z Apache przez HTTP lub HTTPS, używając rozszerzenia DAV.
Ścieżkę repozytorium Git można następnie zabezpieczyć za pomocą testów uwierzytelniania Apache, takich jak ograniczenie do określonych adresów IP lub uwierzytelnianie typu htpasswd / htdigest.
Ograniczeniem korzystania z uwierzytelniania htpasswd / htdigest jest to, że nazwa użytkownika: hasło jest przekazywana w żądanym adresie URL Git, więc ograniczenie dostępu do adresu URL Git do określonych adresów IP jest lepsze.
Edytować: Uwaga, możesz pozostawić hasło poza adresem URL Git, a Git poprosi Cię o hasło podczas wypychania i pobierania / ściągania.
Korzystanie z protokołu HTTPS oznacza, że wszystkie dane są szyfrowane podczas przesyłania.
Jest dość łatwy w konfiguracji i działa.
Poniższy przykład przedstawia kombinację kontroli dostępu według adresu IP i użytkownika: hasło za pośrednictwem standardowego protokołu HTTP.
Przykład Apache Virtualhost
## GIT HTTP DAV ##
<VirtualHost *:80>
ServerName git.example.com
DocumentRoot C:\webroot\htdocs\restricted\git
ErrorLog C:\webroot\apache\logs\error-git-webdav.log
<Location />
DAV on
# Restrict Access
AuthType Basic
AuthName "Restricted Area"
AuthUserFile "C:\webroot\apache\conf\git-htpasswd"
# To valid user
Require valid-user
# AND valid IP address
Order Deny,Allow
Deny from all
# Example IP 1
Allow from 203.22.56.67
# Example IP 2
Allow from 202.12.33.44
# Require both authentication checks to be satisfied
Satisfy all
</Location>
</VirtualHost>
Przykład .git / config
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
[remote "origin"]
fetch = +refs/heads/*:refs/remotes/origin/*
url = http://username:password@git.example.com/codebase.git
[branch "master"]
remote = origin
merge = refs/heads/master