Dopo l’upgrade del serverozzo ho dovuto reinstallare il server Mercurial. Ho deciso di farlo da zero per segnarmi tutti i passi nel caso debba rifarlo su un altro (virtual) PC.

La procedura che ho usato è quella indicata in questo post che spiega come installare e configurare Python, dove prelevare i file e come configurare IIS in modo tale che il server sia accessibile via HTTP.

Dopo di che ci sono da notare un paio di cose: con la versione 1.3.1 di Mercurial va usata la versione 2.5.x di Python in quanto alcuni file binari sono compilati(*) con tale versione ed incompatibili con le successive.

La seconda cosa importante da notare è il fatto che il client mercurial per Windows supporta solo la basic authentication, per cui la coppia utente/password viaggia in rete in chiaro. Per i paranoici ci sono due possibili soluzioni:

  1. creare un utente ad hoc su WHS solo per Mercurial
  2. installare un certificato SSL

Io, avendo anche un’utenza DynDNS, ho voluto intraprendere la seconda strada. Se non ci si vuole procurare un certificato ufficiale che di solito costa un certo ammontare di $$ l’anno, si può usare un tool chiamato SelfSSL e che serve a generare un certificato SSL auto-certificante; il certificato va poi esportato su due file, uno contenente anche la chiave privata per future reinstallazioni del server, uno da installare su tutti i client in modo da evitare l’errore di “trusted root certificate authority” non riconosciuta.

Allego un paio di schermate come promemoria di dove sono tutti i setting da cambiare:

IIS management, right click sulle proprietà del sito, tab Directory Security:

image

Edit su Authentication and access control per abilitare la Basic Authentication e disabilitare l’accesso anonimo:

image

Cliccando “View Certificate” per esportare il certificato:

image

Il checkin completo di una nuova feature ha garantito che il tutto funziona a dovere come dovrebbe

-quack

(*) whatever it means.