Apache-pohjainen Subversion-palvelinasennus tarjoaa eniten mahdollisuuksia muunteluun. Vaikkakin onkin hieman monimutkaisempi asentaa, se tarjoaa etuja, joita muilla palvelimilla ei ole:
Apache-pohjainen Subversion-palvelin käyttää WebDAV-yhteyskäytäntöä, jota myös monet muut ohjelmat tukevat. Voit esimerkiksi asentaa tällaisen arkiston ”Web-kansioksi” Windows-resurssienhallintaan ja sitten käyttää sitä kuten mitä tahansa muuta tiedostojärjestelmän kansiota.
Voit avata arkistosi paikantimen selaimellasi ja selata sen sisältöä asentamatta Subversion-asiakasta. Tällä tavalla tietosi ovat paljon laajemman käyttäjäkunnan saavutettavissa.
Voit käyttää mitä tahansa Apachen tukemaa tunnistustapaa, mukaan lukien SSPI ja LDAP.
Koska Apache on hyvin vakaa ja turvallinen, saat automaattisesti saman turvan arkistollesi. Tähän sisältyy myös SSL-salaus.
Apachen asentamiseksi tarvitset aluksi tietokoneen, jonka käyttöjärjestelmä on joko Windows2000, Windows XP+SP1, Windows2003, Vista tai Server 2008.
Huomaa, että Windows XP-asennus vaatii vähintään päivitysversion 1 (Service Pack 1) asennuksen - muuten verkkoliikenne sotkee tietoja ja voi johtaa arkiston vioittumiseen!
Lataa viimeisin versio Apache-palvelimesta osoitteesta http://httpd.apache.org/download.cgi. Varmista, että lataat version 2.2.x - versio 1.3.xx ei toimi!
Apachen MSI-asennusohjelma löytyy napsauttamalla kohtaa other files ja etsimällä kohta binaries/win32. Saatat haluta MSI-version, jossa on mukana OpenSSL-tuki (apache-2.2.x-win32-x86-openssl-0.9.x.msi ).
Kun sinulla on Apache2-asennusohjelma, voit kaksoisnapsauttaa sitä, ja se ohjaa sinut asennusprosessin läpi. Varmista, että syötät palvelimen paikantimen oikein (jos palvelimellasi ei ole DNS-nimeä, voit antaa myös pelkän IP-osoitteen) Suosittelemme asentamaan Apachen kaikille käyttäjille, porttiin 80, palveluna. Huomaa: Jos IIS tai mikä tahansa muu ohjelma, joka kuuntelee porttia 80, on käynnissä, asennus saattaa epäonnistua. Jos näin käy, siirry hakemistoon \Apache Group\Apache2\conf ja etsi tiedosto httpd.conf. Muokkaa tiedostoa siten, että Listen 80 vaihdetaan vapaaseen porttiin, esim. Listen 81. Käynnistä sitten asennus uudestaan - tällä kertaa sen pitäisi toimia ongelmitta.
Testaa nyt, että Apache-palvelin toimii oikein avaamalla osoite http://localhost/ selaimessa - ennalta asennetun web-sivun pitäisi tulla näkyviin.
Jos päätät asentaa Apachen palveluna, huomioi, että se suoritetaan oletusarvoisesti paikallisella järjestelmätunnuksella (system). Olisi turvallisempaa luoda erillinen tunnus Apachen ajoa varten.
Varmista, että Apachen suorittamiseen käytetyllä tunnuksella on erillinen säätö arkistohakemiston saantioikeuslistassa (napsauta hiiren oikealla napilla hakemisto | ominaisuudet | turvallisuus) kaikilla oikeuksilla. Muuten käyttäjät eivät kykene toimittamaan muutoksiaan arkistoon.
Vaikka Apachea ajetaan paikallisessa järjestelmässä, tarvitset silti tällaisen tunnuksen (tässä tapauksessa SYSTEM-tunnus).
Mikäli tätä oikeutta ei ole määritelty Apacheen, käyttäjäsi saavat ”Access denied” (käyttö estetty) -virheilmoituksia, jotka näkyvät Apachen virhelokissa virheenä 500.
Lataa viimeisin versio Subversion Win32-paketista Apachelle. Varmista, että valitset Apache-versiotasi vastaavan version, muuten törmäät hämäriin virheilmoituksiin käynnistäessäsi koneesi uudelleen. Jos käytät Apache-versiota 2.2.x, siirry osoitteeseen http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=8100.
Aja Subversion-asennusohjelma ja seuraa ohjeita. Mikäli asennusohjelma havaitsee, että olet jo asentanut Apachen, olet miltei valmis. Muussa tapauksessa sinun pitää suorittaa muutama ylimääräinen toimenpide.
Avaa Windows Resurssienhallinta ja siirry Subversion-asennushakemistoon (tavallisesti c:\program files\Subversion) ja etsi tiedostot /httpd/mod_dav_svn.so ja mod_authz_svn.so. Kopioi nämä tiedostot Apachen modulihakemistoon (tavallisesti c:\program files\apache group\apache2\modules).
Kopioi tiedostot /bin/libdb*.dll ja /bin/intl3_svn.dll Subversion -asennushakemistosta Apachen bin-hakemistoon.
Muokkaa Apachen määrittelytiedostoa (tavallisesti C:\Program Files\Apache Group\Apache2\conf\httpd.conf) tekstieditorilla (esim. Notepad) ja tee seuraavat muutokset:
Poista kommentit (poista '#' -merkki) seuraavilta riveiltä:
#LoadModule dav_fs_module modules/mod_dav_fs.so #LoadModule dav_module modules/mod_dav.so
Lisää seuraavat rivit LoadModule -osan loppuun.
LoadModule dav_svn_module modules/mod_dav_svn.so LoadModule authz_svn_module modules/mod_authz_svn.so
Nyt olet asentanut Apachen ja Subversionin, mutta Apache ei osaa vielä palvella Subversion-asiakkaita (esim. TortoiseSVN). Kertoaksesi Apachelle, mitä paikanninta Subversion-arkistot käyttävät sinun on muokatattava Apachen määrittelytiedostoa (tavallisesti paikassa c:\program files\apache group\apache2\conf\httpd.conf) tekstieditorilla (esim. Notepad):
Lisää määrittelytiedoston loppuun seuraavat rivit:
<Location /svn> DAV svn SVNListParentPath on SVNParentPath D:\SVN #SVNIndexXSLT "/svnindex.xsl" AuthType Basic AuthName "Subversion repositories" AuthUserFile passwd #AuthzSVNAccessFile svnaccessfile Require valid-user </Location>
Tämä määrittää Apachen niin, että kaikki Subversion-arkistosi ovat fyysisesti hakemiston D:\SVN sisällä. Arkistot välitetään ulkomaailmalle paikantimella http://MyServer/svn/ . Kytkeytyminen on rajoitettu tunnettuihin käyttäjiin, jotka on lueteltu tiedostossa passwd.
Luodaksesi tiedoston passwd, avaa komentokehote (DOS-komentoikkuna) uudelleen, siirry apache2 -hakemistoon (tavallisesti c:\program files\apache group\apache2) ja luo tiedosto antamalla komento
bin\htpasswd -c passwd <nimi>
Tämä luo tiedoston "passwd", jota käytetään tunnistamiseen. Uusia käyttäjiä voi lisätä komennolla
bin\htpasswd passwd <nimi>
Käynnistä Apache-palvelu uudestaan.
Avaa selainikkuna osoitteessa http://MyServer/svn/MyNewRepository (missä MyNewRepository on aiemmin luomasi Subversion-arkiston nimi). Jos kaikki meni hyvin, sinulta pyydetään käyttäjätunnusta ja salasanaa, minkä jälkeen arkiston sisältö ilmestyy näkyviin.
Lyhyt selvitys juuri syöttämillesi tiedoille:
Taulu 3.1. Apache httpd.conf-asetukset
| Asetus | Selitys |
|---|---|
| <Location /svn> | tarkoittaa, että Subversion-arkistot ovat saatavilla paikantimella http://MyServer/svn/ |
| DAV svn | kertoo Apachelle, mikä moduli on vastuussa paikantimen palvelemisesta - tässä tapauksessa Subversion-moduli. |
| SVNListParentPath on | sallii kaikkien SVNParentPath takana olevien arkistojen luettelemisen. Käytettävissä Subversion-versiosta 1.3 eteenpäin. |
| SVNParentPath D:\SVN | kertoo Subversionille, että arkistot ovat polun D:\SVN alapuolella |
| SVNIndexXSLT "/svnindex.xsl" | muuttaa arkiston esitystapaa, kun selailu tehdään web-selaimella. |
| AuthType Basic | aktivoi perustunnistuksen, ts. käyttäjätunnus/salasana |
| AuthName "Subversion repositories" | käytetään tunnistusikkunassa kertomaan käyttäjälle, mihin tunnistusta tarvitaan |
| AuthUserFile passwd | määrittää, mitä salasanatiedostoa tunnistukseen käytetään |
| AuthzSVNAccessFile | Subversion-arkiston valtuutustiedoston sijainti (määrittää arkiston polkujen saantioikeudet) |
| Require valid-user | määrittää, että vain oikean käyttäjätunnus/salasana -parin antanut käyttäjä voi käyttää paikanninta |
Tämä on kuitenkin vain esimerkki. On paljon muitakin mahdollisuuksia sille, mitä voit tehdä Apache-palvelimella.
Jos haluat, että arkistosi sallii lukuoikeudet kaikille, mutta kirjoitusoikeudet vain tietyille käyttäjille, voit vaihtaa rivin
Require valid-user
muotoon
<LimitExcept GET PROPFIND OPTIONS REPORT> Require valid-user </LimitExcept>
passwd-tiedoston käyttö rajoittaa ja sallii yhdellä kertaa pääsyn kaikkiin arkistoihisi. Jos haluat määrittää tarkemmin, kellä käyttäjillä on pääsy mihinkin kansioon arkiston sisällä, voit poistaa kommentin riviltä
#AuthzSVNAccessFile svnaccessfile
ja luoda Subversion -valtuutustiedoston. Apache varmistaa, että vain oikeat käyttäjät pääsevät kytkeytymään /svn-osoitteeseen, ja välittää tämän jälkeen käyttäjätunnuksen Subversionin AuthzSVNAccessFile-modulille, joka tekee hienosyisemmän tarkistuksen Subversionin valtuutustiedostossa olevien sääntöjen perusteella. Huomaa, että polut annetaan joko muodossa arkisto:polku tai yksinkertaisesti polku. Jos jätät arkiston antamatta jollekin säännölle, sääntö pätee kaikille arkistoille SVNParentPath-polun alla. mod_authz_svn-modulin valtuutustiedoston rakenne on kuvattu luvussa ”Polkuperustainen valtuutus”.
Tehdäksesi arkiston selailun web-selaimella 'tyylikkäämmäksi', poista kommentti riviltä
#SVNIndexXSLT "/svnindex.xsl"
ja sijoita tiedostot svnindex.xsl, svnindex.css ja menucheckout.ico dokumenttien juurikansioon (tavallisesti C:/Program Files/Apache Group/Apache2/htdocs). Juurikansio asetetaan komennolla DocumentRoot Apache-määrittelytiedostossasi.
Voit hakea nuo kolme tiedostoa TortoiseSVN-arkistosta osoitteesta http://tortoisesvn.googlecode.com/svn/trunk/contrib/svnindex.(Kappale ”TortoiseSVN on ilmainen!” kertoo, miten TortoiseSVN-arkistoon kytkeydytään).
TortoiseSVN-arkistosta löytyvästä xsl-tiedostosta on mukava lisäpiirre: kun selaat arkistoa selaimellasi, jokaisen kansion oikealla puolella on kuvake. Napsauttamalla kuvaketta voit käynnistää TortoiseSVN-komennon "Hae työkopio" tästä osoitteesta.
Jos käytät SVNParentPath-komentoa, sinun ei tarvitse muuttaa Apachen määrittelytiedostoa aina, kun lisään uuden Subversion-arkiston. Riittää, että yksinkertaisesti luot uuden arkiston samaan paikkaan kuin ensimmäinen arkisto, ja olet valmis! Jos sinulla on suora pääsy tuohon palvelinkansioon, niin uuden arkiston luomiseksi riittää, kun luot työasemaltasi palvelinkansioon uuden alihakemiston ja annat TortoiseSVN-komennon → .
Mikäli käytät Subversion-ohjelman versiota 1.3 tai uudempaa, voit komennolla SVNListParentPath on saada Apachen tuottamaan luettelon kaikista käytettävissä olevista arkistoista, kun avaat web-selaimella arkiston sijaan sen yläkansion.
Modulin mod_authz_svn avulla arkiston saantioikeudet voidaan määritellä tarkemmin käyttäjätunnusten ja arkistopolkujen perusteella. Moduli on käytettävissä Apache-pohjaisen palvelimen kanssa, ja alkaen Subversion-versiosta 1.3 myös svnserve-palvelimen kanssa.
Esimerkkitiedosto voisi näyttää seuraavalta:
[groups] admin = john, kate devteam1 = john, rachel, sally devteam2 = kate, peter, mark docs = bob, jane, mike training = zak # Oletussaantioikeus KAIKILLE arkistoille # Kaikki voivat lukea, ylläpitäjät kirjoittaa, Dan German on estetty. [/] * = r @admin = rw dangerman = # Salli kehittäjille täydet oikeudet projektikohtaisiin arkistoihin [proj1:/] @devteam1 = rw [proj2:/] @devteam2 = rw [bigproj:/] @devteam1 = rw @devteam2 = rw trevor = rw # Anna dokumentoijille kirjoitusoikeudet dokumenttikansioihin [/trunk/doc] @docs = rw # Anna harjoittelijoille kirjoitusoikeudet vain harjoitteluarkistoon [TrainingRepos:/] @training = rw
Huomaa, että jokaisen polun tarkistaminen voi viedä runsaasti aikaa, etenkin versiolokia haettaessa. Palvelin tarkistaa jokaiselle haetulle versiolle lukuoikeuden jokaiseen se muuttuneeseen polkuun; tämä voi kestää kauan versioilla, joissa usea tiedosto on muuttunut.
Tunnistaminen (authentication) ja valtuuttaminen (authorization) ovat erillisiä toimintoja. Jos käyttäjä haluaa lukea tietyn arkiston polun, hänen täytyy täyttää molemmat, normaalit tunnistusvaatimukset sekä valtuutustiedoston määrittämät polkuoikeudet.
Kuten olet ehlä huomannut, sinun täytyy tehdä käyttäjätunnus/salasana-yhdistelmä passwd-tiedostoon jokaiselle käyttäjälle erikseen. Ja jos haluat (tietoturvasyistä) käyttäjien vaihtavan säännöllisesti salasanojaan, sinun pitää tehdä muutokset käsin.
Tähän ongelmaan on kuitenkin ratkaisu - ainakin jos kytkeydyt arkistoon lähiverkossa, joka kuuluu Windows-toimialueeseen: mod_auth_sspi!
Alkuperäisen SSPI-modulin julkaisi lähdekoodien kanssa Syneapps. Modulin kehittäminen heidän toimestaan on kuitenkin sittemmin lakannut. Avoimen lähdekoodin yhteisö on kuitenkin alkanut jälleen ylläpidon. Projektilla on uusi koti osoitteessa http://sourceforge.net/projects/mod-auth-sspi/.
Lataa Apache-versiotasi vastaava moduli ja kopioi tiedosto mod_auth_sspi.so Apachen modulihakemistoon.
Muokkaa Apachen määrittelytiedostoa: lisää rivi
LoadModule sspi_auth_module modules/mod_auth_sspi.so
LoadModule-osaan. Varmista, että lisäät rivin ennen riviä
LoadModule auth_module modules/mod_auth.so
Saadaksesi Subversionin käyttämään uutta tunnistustapaa muuta rivi
AuthType Basic
muotoon
AuthType SSPI
Lisää myös rivit
SSPIAuth On SSPIAuthoritative On SSPIDomain <toimialuekontrolleri> SSPIOmitDomain on SSPIUsernameCase lower SSPIPerRequestAuth on SSPIOfferBasic On
<Location /svn>-lohkoon. Jos ympäristössäsi ei ole toimialuekontrolleria, jätä kontrollerin nimi muotoon <toimialuekontrolleri>.
Huomaa, että jos käytät SSPI-tunnistusta, et tarvitse AuthUserFile -riviä salasanatiedoston määrittämiseen. Sen sijaan Apache tunnistaa antamasi käyttäjätunnuksen ja salasanan Windows-toimialuetta vastaan. Sinun pitää myös päivittää käyttäjälista valtuutustiedostossa svnaccessfile sisältämään toimialueviittauksen TOIMIALUE\käyttäjätunnus.
SSPI-tunnistus on kytketty vain SSL-pohjaisille yhteyksille (https). Jos käytät normaalia http-yhteyttä palvelimellesi, se ei toimi.
Katso ohjeet luvusta ”Palvelimen turvaaminen SSL-tekniikalla” kytkeäksesi SSL-yhteyden toimintaan palvelimellasi.
Subversionin AuthzSVNAccessFile-tiedostot tulkitsevat isot ja pienet kirjaimet eri merkeiksi käyttäjätunnuksissa (JUser on eri kuin juser).
Microsoft-maailmassa Windows-toimialueet ja käyttäjätunnukset eivät erottele isoja ja pieniä kirjaimia. Niinpä jotkut ylläpitäjät luovat mielellään käyttäjätunnukset KameliMuodossa (esim. JUser).
Tämä eroavuus voi haitata sinua SSPI-tunnistusta käytettäessä, koska Windows-toimialuenimi ja käyttäjätunnus välitetään Subversionille suoraan käyttäjän kirjoittamassa muodossa. Internet Explorer välittää usein käyttäjätunnuksen Apachelle automaattisesti käyttäen tunnusta luotaessa käytettyä muotoa.
Lopputulos on, että tarvitset ainakin kaksi alkiota AuthzSVNAccessFile-tiedostoon kutakin käyttäjää varten -- yhden pienillä kirjaimilla kirjoitetun ja toisen, joka on Internet Explorerin Apachelle välittämässä muodossa. Sinun pitää myös kertoa käyttäjille, että käyttäjätunnus tulee syöttää pieniä kirjaimia käyttäen, kun kytkeydytään arkistoihin TortoiseSVN-ohjelmalla.
Apachen virhe- ja saantilokit ovat parhaat ystäväsi, kun selvität tällaisia ongelmia - ne auttavat sinua päättelemään Subversionin AuthzSVNAccessFile-modulille välitetyn käyttäjätunnuksen muodon. Voit joutua kokeilemaan erilaisia käyttäjätunnuksen muotoja svnaccessfile-tiedostossa (esim.TOIMIALUE\käyttäjä vs. TOIMIALUE//käyttäjä) saadaksesi kaiken toimimaan.
On myös mahdollista määrittää useampi kuin yksi tunnistustapa Subversion-arkistollesi. Tätä varten sinun pitää tehdä jokaisesta tunnistustyypistä ei-määräävä, jotta Apache saadaan tarkistamaan ne kaikki täsmäävän käyttäjätunnus/salasana-parin löytämiseksi.
On tavallista käyttää sekä Windows-toimialuetunnistusta sekä passwd-tiedostoa, jotta voit sallia SVN-käytön myös käyttäjille, joilla ei ole käyttäjätunnusta Windows-toimialueelle.
Salliaksesi sekä Windows-toimialue että passwd-tiedostotunnistuksen, lisää seuraavat rivit <Location> -lohkoon Apachen määrittelytiedostossa:
AuthBasicAuthoritative Off SSPIAuthoritative Off
Seuraavassa on esimerkki täydellisestä Apache-määrittelystä yhdistetylle Windows-toimialue ja passwd-tiedostoon perustuvalle tunnistukselle:
<Location /svn> DAV svn SVNListParentPath on SVNParentPath D:\SVN AuthName "Subversion repositories" AuthzSVNAccessFile svnaccessfile.txt # NT Domain Logins. AuthType SSPI SSPIAuth On SSPIAuthoritative Off SSPIDomain <domaincontroller> SSPIOfferBasic On # Htpasswd Logins. AuthType Basic AuthBasicAuthoritative Off AuthUserFile passwd Require valid-user </Location>
Vaikka Apache 2.2.x sisältää OpenSSL-tuen, se ei ole oletusarvoisesti aktivoitu. Joudut asettamaan sen päälle erikseen.
Poista Apachen määrittelytiedostosta kommenttimerkki riviltä
#LoadModule ssl_module modules/mod_ssl.so
ja lopussa riviltä
#Include conf/extra/httpd-ssl.conf
Muuta sen jälkeen rivi (yhdellä rivillä)
SSLMutex "file:C:/Program Files/Apache Software Foundation/\ Apache2.2/logs/ssl_mutex"
muotoon
SSLMutex default
Seuraavaksi sinun pitää luoda SSL-varmenne. Avaa komentorivikehote (DOS-ikkuna) ja vaihda Apache-kansioon (esim. C:\program files\apache group\apache2) ja anna seuraava komento:
bin\openssl req -config conf\openssl.cnf -new -out my-server.csr
Sinua pyydetään antamaan salauslause. Älä käytä pelkkiä sanoja, vaan kokonaisia lauseita, esim. osia runosta. Mitä pidempi salauslause, sen parempi. Sinulta kysytään myös palvelimesi paikannin. Muut kysymykset ovat vapaaehtoisia, mutta suosittelemme sinua vastaamaan myös niiihin.
Tavallisesti tiedosto privkey.pem luodaan automaattisesti, mutta jos näin ei käy, anna komento
bin\openssl genrsa -out conf\privkey.pem 2048
sen luomiseksi.
Anna seuraavaksi komennot
bin\openssl rsa -in conf\privkey.pem -out conf\server.key
ja (yhdellä rivillä)
bin\openssl req -new -key conf\server.key -out conf\server.csr \ -config conf\openssl.cnf
ja sitten (yhdellä rivillä)
bin\openssl x509 -in conf\server.csr -out conf\server.crt
-req -signkey conf\server.key -days 4000
Tämä luo varmenteen, joka vanhenee 4000 päivän kuluttua. Anna lopuksi (yhdellä rivillä) komento
bin\openssl x509 -in conf\server.cert -out conf\server.der.crt
-outform DER
Nämä komennot luovat muutamia tiedostoja Apachen conf-hakemistoon (server.der.crt, server.csr, server.key, .rnd, privkey.pem, server.cert).
Käynnistä Apache-palvelu uudestaan.
Avaa osoite https://servername/svn/project selaimessasi...
Jos salaat palvelinliikenteen SSL-käytännöllä ja käytät Windows-toimialuetunnistusta, huomaat, ettei arkiston selaus Internet Explorer -selaimella toimi enää. Tämä johtuu Internet Explorerin kyvyttömyydestä tunnistaa käyttäjä tässä yhteydessä. Muilla selaimilla ei ole tätä ongelmaa, ja TortoiseSVN (kuten muutkin Subversion-asiakkaat) kykenee tunnistamaan käyttäjän.
Jos haluat yhä käyttää IE:tä arkiston selaamiseen, voit joko:
määritä erillinen <Location /path> -osa Apachen määrittelytiedostoon ja lisää komento SSPIBasicPreferred On. Tämä mahdollistaa IE-tunnistuksen jälleen, mutta muut selaimet ja Subversion eivät kykene tunnistamaan käyttäjiä annettua polkua vastaan.
Salli selaaminen myös salaamatonta tunnistusta käyttäen (ilman SSL-käytäntöä). Outoa kyllä, IE:llä ei ole tunnistusongelmia, mikäli yhteys ei ole SSL-salattu.
"Standardissa" SSL-kokoonpanossa Apachen virtual SSL host -osassa on usein seuraavat komennot:
SetEnvIf User-Agent ".*MSIE.*" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0
Tälle kokoonpanolla on (oli?) hyviä syitä, ks. http://www.modssl.org/docs/2.8/ssl_faq.html#ToC49 Jos haluat NTLM-tunnistuksen, sinun pitää käyttää keepalive-komentoa. Jos poistat kommentit koko SetEnvIf-osasta, sinun pitäisi pystyä tunnistamaan käyttäjät IE:ssä käyttäen Windows-tunnistusta SSL-yhteyden yli Apachella käyttäen mukana toimitettavaa mod_auth_sspi-modulia.
Kun olet ottanut SSL-tekniikan käyttöön parantaaksesi arkistosi turvallisuutta, saatat haluta estää normaalin kytkeytymisen (http) ja sallia vain https-kytkeytymisen. Tämä vaatii ylimääräisen SSLRequireSSL-komennon Subversionin <Location>-lohkoon.
Esimerkki <Location>-lohkosta näyttää seuraavalta:
<Location /svn> DAV svn SVNParentPath D:\SVN SSLRequireSSL AuthType Basic AuthName "Subversion repositories" AuthUserFile passwd #AuthzSVNAccessFile svnaccessfile Require valid-user </Location>
Lähetetty TortoiseSVN-postituslistalle Nigel Greenin toimesta. Kiitos!
Joissain tapauksissa saatat joutua määrittämään yhdelle palvelimelle kaksi SSL-näennäispalvelinta: Yhden ilman asiakasvarmennetta julkista verkkoa varten ja toisen pakollisen asiakasvarmenteen kanssa Subversion-asiakkaille.
Lisäämällä SSLVerifyClient Optional-direktiivin Apachen palvelinkohtaisiin asetuksiin (ts. ei VirtualHost tai Directory -lohkohin) pakotat Apachen pyytämään asiakasvarmennetta ensimmäisessä SSL-kättelyssä. Johtuen virheestä mod_ssl-modulissa on välttämätöntä, että varmenne pyydetään tässä kohtaa, koska se ei toimi, mikäli SSL-yhteys neuvotellaan uudestaan.
Ratkaisu on lisätä seuraava direktiivi siihen näennäiskonehakemistoon, jonka haluat varata Subversion-käyttöön:
SSLRequire %{SSL_CLIENT_VERIFY} eq "SUCCESS"
Direktiivi sallii pääsyn hakemistoon vain, jos asiakasvarmenne vastaanotetaan ja tarkastetaan onnistuneesti.
Yhteenvetona, Apachen oleelliset määrittelyosat ovat seuraavat:
SSLVerifyClient Optional
### Näennäiskonemäärittely JULKISELLE koneelle (ei varmennetta)
<VirtualHost 127.0.0.1:443>
<Directory "polku_julkisten_tiedostojen_juureen">
</Directory>
</VirtualHost>
### Näennäiskonemäärittely SUBVERSIONille (pakollinen varmenne)
<VirtualHost 127.0.0.1:443>
<Directory "subversion host root path">
SSLRequire %{SSL_CLIENT_VERIFY} eq "SUCCESS"
</Directory>
<Location /svn>
DAV svn
SVNParentPath /polku_arkistoon
</Location>
</VirtualHost>