Home Page di Graziano Scappatura
Loading

Installazione di un certificato SSL Web Server

mercoledì 02 marzo 2011

Per installare un certificato SSL Web Server su HTTP server di Apache (Apache), su una piattaforma Unix-like con OpenSSL, si possono seguire le istruzioni riportate in questo articolo. Per prima cosa si deve generare il CSR ('Certificate Signing Request') da inviare alla CA ('Certification Authority') per generare il certificato digitale da installare. Quindi, una volta ottenuto il certificato SSL Web Server dalla CA, si puo' procedere alla sua installazione.

Generazione del CSR

Supponendo che il FQDN ('Fully Qualified Domain Name') del sito Web per cui si intende richiedere il certificato SSL Web Server sia www.domain.tld (ovvero si vuole accedere al sito come https://www.domain.tld/), www.domain.tld e' il common name da inserire nel CSR.

Fase 1: Generazione della chiave privata:

1. Eseguire il seguente comando sul server:

$ openssl genrsa -des3 -out private.key 1024

Nota: Questo comando genera una chiave privata RSA ('Rivest, Shamir e Adleman') di 1024 bit e la salva nel file private.key. Durante il processo di generazione della chiave sara' richiesto di formulare e inserire una passphrase da usare congiuntamente al certificato.

Nota: Se non si adottano particolari accorgimenti, Apache richiedera' la passphrase a ogni avvio, e questo potrebbe costituire un problema nel caso di riavvii automatici. Se il server e' considerato sicuro e i permessi sono impostati correttamente in modo che la chiave privata non sia leggibile da nessun altro, e' possibile non proteggerla con una password semplicemente omettendo l'opzione -des3.

Nota: E' consigliabile effettuare un backup del file con la chiave privata e formulare una passphrase che non sia possibile dimenticare.

Fase 2: Generazione del CSR:

1. Eseguire il seguente comando sul server:

$ openssl req -new -key private.key -out www.domain.tld.csr

Nota: Questo comando richiede gli attributi X.509 del certificato. Si inserisca la sigla del paese di appartenenza ('Country Name (2 letter code) [AU]'), il nome della provincia ('State or Province Name (full name) [Some-State]') e della citta' ('Locality Name (eg, city) []') e il nome dell'organizzazione ('Organization Name (eg, company) [Internet Widgits Pty Ltd]') esattamente come appare nei documenti ufficiali. In particolare, determinate authority prima di rilasciare un certificato digitale verificano che il nome dell'organizzazione corrisponda con quello specificato dall'owner del dominio domain.tld. L'unita' organizzativa ('Organizational Unit Name (eg, section) []') e' opzionale.

Nota: Quando viene richiesto 'Common Name (eg, YOUR name) []' si inserisca il FQDN del sito.

Nota: Si puo' fare a meno di inserire l'indirizzo email ('Email Address []'), la challenge password ('A challenge password []') o il nome alternativo dell'azienda ('An optional company name []') durante il processo di generazione del CSR.

A questo punto e' stata generata una chiave privata RSA memorizzata nel file private.key pronta per essere usata per l'installazione del certificato SSL Web Server su Apache per il sito Web www.domain.tld. Il file private.key si supporra' essere locato nella directory /usr/local/ssl/private/.

Il CSR ha un aspetto simile al seguente:

-----BEGIN CERTIFICATE REQUEST-----
MIIByjCCATMCAQAwgYkxCzAJBgNVBAYTAklUMQ8wDQYDVQQIEwZWZXJvbmExDzAN
BgNVBAcTBlZlcm9uYTEfMB0GA1UEChMWSW5mcmFjb20gSXRhbGlhIFMucC5BLjEX
MBUGA1UEAxMOd3d3LmRvbWFpbi50bGQxHjAcBgkqhkiG9w0BCQEWD2luZm9AZG9t
YWluLnRsZDCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAv2P7tLcem7e/6G8L
sQF5nrpeQhx6KwljHFr8X6/JMFnJl8sPe+4qE/n3BWethlWbQRmU2aC+77IuesQ7
tmQf5B8QoJ1MMlR0YkbflHY2KeK3UtIC1cNZZB764U2OkcjLIB+1I8WImVVcuThD
cO1kmYQnGwYfXYb3CHLc6lXR0CkCAwEAAaAAMA0GCSqGSIb3DQEBBQUAA4GBAAvp
uAwFT0I4++FIG+VwNWWyfxKcDFtc7avfPTGvtC8Khg4eh4FUYt+yRxNhbRX+QWf5
ZJFymB/AOhhymj1kp25OtKrmgzMP654IqFjdpcE+gZJeuKq05Ky1tK/lqBy3tuCe
Rh3U+/3LgrA5+45wPu9eaKjuBHuQ6fANqdBsyUde
-----END CERTIFICATE REQUEST-----

Installazione del certificato

Fase 1: Installazione del certificato intermedio:

1. Copiare il file intermediate.crt ottenuto dalla CA nella directory /usr/local/ssl/crt/ sul server.

Nota: Puo' capitare che il certificato intermedio sia rilasciato dalla CA come un file con estensione '.pem'. In tale caso, e' sufficiente rinominarlo in intermediate.crt.

Fase 2: Installazione del certificato SSL Web Server:

1. Copiare il file public.crt ottenuto dalla CA nella directory /usr/local/ssl/crt/ sul server.

Nota: Puo' succedere che il certificato sia rilasciato dalla CA come un file con estensione '.cer'. Questa estensione sta ad identificare semplicemente che si tratta di un certificato 'pubblico'. Anche in questo caso, e' sufficiente rinominare il file in public.crt.

Fase 3: Configurazione di Apache:

1. Configurare Apache, impostando le seguenti direttive dell'host virtuale (definito dalla direttiva VirtualHost di Apache) per il sito Web per cui il certificato e' stato generato:

SSLCertificateFile /usr/local/ssl/crt/public.crt
SSLCertificateKeyFile /usr/local/ssl/private/private.key
SSLCACertificateFile /usr/local/ssl/crt/intermediate.crt

Nota: Alcune versioni di Apache non accettano la direttiva SSLCACertificateFile. In tali casi, si provi ad usare SSLCertificateChainFile.

Nota: La prima direttiva indica ad Apache come trovare il file del certificato, la seconda dove si trova la chiave privata, e la terza direttiva indica la posizione del certificato intermedio.

Nota: Se si usano locazioni e nomi di file diversi dall'esempio precedente per i certificati sara' necessario modificare di conseguenza le locazioni e i nomi dei file.

Nota: Alcune versioni di Apache contengono il file di configurazione ssl.conf oltre a httpd.conf. In tali casi, si inseriscano le direttive di cui sopra in httpd.conf o in ssl.conf, ma non in entrambi.

2. Salvare il file di configurazione di Apache.

3. Riavviare Apache utilizzando lo script apachectl:

# apachectl stop
# apachectl startssl

Nota: Se l’avvio di Apache fallisce consultare il file dei log degli errori di Apache.

Comments:

Post a Comment:
  • HTML Syntax: Allowed

Search

Tag Cloud

Archive

recent Post

Link

Blogroll

Feed

All Post

Related entries

  • Installazione di Android Kitkat 4.4.4 su HTC HD2
  • Il 'buon senso' del MIUR
  • Installazione di un certificato SSL Web Server
  • BlackBerry Desktop Software
  • Ironia e aneddoti informatici
  • Microsoft Outlook e Blackberry
  • Error 1058: The service cannot be started
  • PHP 5.2.5 su Tomcat 5 in ambiente Windows
  • HTTP Server di Apache e i 'behaviour'
  • Preambolo a questa categoria
  • ADS