Su Windows, puoi anche servire i repository Git con Apache su HTTP o HTTPS, utilizzando l'estensione DAV.
Il percorso del repository Git può quindi essere protetto con controlli di autenticazione Apache come la limitazione a determinati indirizzi IP o l'autenticazione di tipo htpasswd / htdigest.
La limitazione dell'utilizzo dell'autenticazione htpasswd / htdigest è che il nome utente: password viene passato nell'URL Git richiesto, quindi è meglio limitare l'accesso all'URL Git a determinati indirizzi IP.
Modifica: Nota, puoi lasciare la password fuori dall'URL di Git e Git ti chiederà la password su push e fetch / pull invece.
L'uso di HTTPS significa che tutti i dati vengono crittografati durante il trasferimento.
È abbastanza facile da configurare e funziona.
L'esempio seguente mostra la combinazione di controllo dell'accesso tramite indirizzo IP e utente: password su HTTP standard.
Esempio 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>
Esempio .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