Certificati SSL: differenze tra le versioni

Da Webmobili Wiki.
 
(18 versioni intermedie di uno stesso utente non sono mostrate)
Riga 11: Riga 11:


I nostri consulenti SEO (InTarget) hanno asserito che Google non bada alla qualità del certificato ma solo alla sua presenza.
I nostri consulenti SEO (InTarget) hanno asserito che Google non bada alla qualità del certificato ma solo alla sua presenza.
=== Apache ===
Per creare un VirtualHost con certificato autentico aggiungere un file dentro alla cartella <code>/etc/apache2/sites-available</code> con la configurazione personalizzata che utilizzi i certificati giusti.<br/><br/>
''Esempio pratico:''
* Copiare i file del certificato (crt e key) + il <u>certificato intermedio</u> nella cartella <code>/etc/apache2/ssl/</code>. N.B. Se si dispone del file .cer basta rinominare l'estensione in .crt
* Unire certificato e certificato intermedio in un unico file con il comando
<syntaxhighlight lang="bash">
cat nomesito.com_ssl_certificate.crt nomesito.com_ssl_certificate_intermediate.crt >> nomesito.com_ssl_certificate_bundle.crt
</syntaxhighlight>
Ricordarsi di mettere in <code>/etc/apache2/ssl/</code> i tre file
* <code>nomesito.com_ssl_certificate.crt</code>
* <code>nomesito.com_private_key.key</code>
* <code>nomesito.com_ssl_certificate_bundle.crt</code><br/><br/>
Il '''virtualhost''' aggiunge le direttive '''SSLEngine''', '''SSLCertificateFile''' e '''SSLCertificateKeyFile'''.<br/>
È possibile configurare un '''redirect ''http'' => ''https''''' direttamente dal virtualhost.<br/><br/>
''Esempio pratico:''<br/>
<syntaxhighlight lang="apache">
#
# blog.designbest.com
#
<VirtualHost *:80>
        ServerName blog.designbest.com
        Redirect / https://blog.designbest.com/
</VirtualHost>
<IfModule mod_ssl.c>
        <VirtualHost *:443>
                ServerAdmin s.vincenzi@webmobili.it
                ServerName blog.designbest.com
                DirectoryIndex index.html index.htm index.php
                DocumentRoot /var/www/blog.designbest.com/
                Alias /phpmyadmin /usr/share/phpmyadmin
                <Directory />
                        Options FollowSymLinks
                        AllowOverride All
                </Directory>
                <Directory /var/www/blog.designbest.com/>
                        Options -Indexes +FollowSymLinks +MultiViews
                        AllowOverride All
                        Order allow,deny
                        Allow from all
                </Directory>
                SSLEngine on
                SSLCertificateFile /etc/apache2/ssl/designbest.com_ssl_certificate_bundle.crt
                SSLCertificateKeyFile /etc/apache2/ssl/designbest.com_private_key.key
                ErrorLog ${APACHE_LOG_DIR}/blog.designbest.com/error.log
                CustomLog ${APACHE_LOG_DIR}/blog.designbest.com/access.log combined
        </VirtualHost>
</IfModule>
</syntaxhighlight>
=== Nginx ===
Per creare un VirtualHost con certificato ssl aggiungere un file dentro alla cartella <code>/etc/nginx/sites-available</code> con la configurazione personalizzata che utilizzi i certificati giusti.
Per renderlo disponibile creare un symlink dentro alla cartella <code>/etc/nginx/sites-enabled</code> e restartare nginx.<br/><br/>
Esempio pratico:
* Copiare i file del certificato (crt e key) + il <u>certificato intermedio</u> nella cartella <code>/etc/nginx/ssl/</code>. N.B. Se si dispone del file .cer basta rinominare l'estensione in .crt
* Unire certificato e certificato intermedio in un unico file con il comando
<syntaxhighlight lang="bash">
cat nomesito.com_ssl_certificate.crt nomesito.com_ssl_certificate_intermediate.crt >> nomesito.com_ssl_certificate_bundle.crt
</syntaxhighlight>
Ricordarsi di mettere in <code>/etc/nginx/ssl/</code> i tre file
* <code>nomesito.com_ssl_certificate.crt</code>
* <code>nomesito.com_private_key.key</code>
* <code>nomesito.com_ssl_certificate_bundle.crt</code>
<br/>
Per il momento su <code>MULAN</code> c'è solo designbest.com .<br/>
wm4pr.com è settato ma non usato. In uso in Test su <code>POCAHONTAS</code>.
<br/><br/>
* Creare il virtual host
<syntaxhighlight lang="bash">
sudo touch /etc/nginx/sites-available/nomesito.com
sudo nano /etc/nginx/sites-available/nomesito.com
</syntaxhighlight>
e scriverci dentro qualcosa come
<syntaxhighlight lang="bash">
server {
listen 443 http2;
ssl on;
ssl_certificate /etc/nginx/ssl/nomesito.com_ssl_certificate_bundle.crt;
ssl_certificate_key /etc/nginx/ssl/nomesito.com_ssl_certificate.key;
server_name nomesito.com;
location / {
proxy_pass http://127.0.0.1:80;
proxy_set_header X-Real-IP  $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto https;
proxy_set_header X-Forwarded-Port 443;
proxy_set_header Host $host;
}
}
</syntaxhighlight><br/>
* Pubblicare il virtual host su nginx
<syntaxhighlight lang="bash">
sudo ln -s /etc/nginx/sites-available/nomesito.com /etc/nginx/sites-enabled
sudo service nginx restart
</syntaxhighlight><br/><br/>
Verificare la validità del certificato su siti come questo:
[https://www.digicert.com/help/ SSL Certificate Checker]
=== Richiesta CSR ===
Genera un file <code>.csr</code> e un file <code>.key</code> che sono la richiesta di certificato per il server in questione e la chiave privata.
<syntaxhighlight lang="bash">
openssl req -new -newkey rsa:2048 -nodes -keyout designbestmagazine.com_private_key.key -out designbestmagazine.com.csr
</syntaxhighlight>
Importante, alla domanda sul '''Common Name''' specificare il NOME DEL DOMINIO (es <code>designbestmagazine.com</code>)
=== Certificato SSL autofirmato ===
Per <u>generare un certificato autofirmato</u>
<syntaxhighlight>
sudo mkdir /etc/nginx/ssl
sudo openssl req -x509 -nodes -days 3650 -newkey rsa:2048 -keyout /etc/nginx/ssl/nginx.key -out /etc/nginx/ssl/nginx.crt
</syntaxhighlight >
Alla domanda sul ''common name'' è necessario scrivere il nome della macchina sul dominio (lo stesso di a <code>/etc/hostname</code>).<br/>
Il certificato generato vale solo 10 anni, cambiare il parametro days a piacimento<br/><br/>


== Trovaprodotti ==
== Trovaprodotti ==
Riga 52: Riga 182:


BLOG DESIGNBEST (MERIDA)
BLOG DESIGNBEST (MERIDA)
* blog.designbest.com
* blog.designbest.com ''(no Let's Encrypt, certbot lancia un errore che butta giù apache)''
* promo.designbest.com
* promo.designbest.com (ora gestito con Let's Encrypt)
 
DESIGNBEST (MULAN)
* designbest.com
* www.designbest.com


==== Problema con file PFX ====
==== Problema con file PFX ====
Riga 62: Riga 196:
prima genero un '''bundle'''
prima genero un '''bundle'''
<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
cat designbest.com.com_ssl_certificate.cer designbest.com.com_ssl_certificate_intermediate.cer >> designbest.com.com_ssl_certificate_bundle.cer
cat designbest.com_ssl_certificate.cer designbest.com_ssl_certificate_intermediate.cer >> designbest.com_ssl_certificate_bundle.cer
</syntaxhighlight>
</syntaxhighlight>


Riga 82: Riga 216:
* www.webmobili.it
* www.webmobili.it
* webmobili.it
* webmobili.it
* trovaprodotti.webmobili.it


=== Certificato SSL wm4pr ===
=== Certificato SSL wm4pr ===
Riga 87: Riga 222:
* wm4pr.com
* wm4pr.com
* www.wm4pr.com
* www.wm4pr.com
* bo.wm4pr.com
* test.wm4pr.com (su JASMINE)
* test.wm4pr.com (su JASMINE)
* mobiletest.wm4pr.com (su JASMINE)


TROVAPRODOTTI-APP
TROVAPRODOTTI LEGACY
* mobile.wm4pr.com
* legacy.wm4pr.com


TROVAPRODOTTI-IMAGES
TROVAPRODOTTI-IMAGES
* imgs.wm4pr.com
* imgs.wm4pr.com


SHOPTHEME (su Merida NON SERVE, non girano sotto https)
=== Certificato SSL dbdemo47 ===
* shoptheme1.wm4pr.com
Tutto '''Let'sEncrypt'''.<br/>
* shoptheme2.wm4pr.com
Ricordarsi di passare tutti i WebSites di JASMINE.<br/>
* shoptheme3.wm4pr.com
Il certificato deve essere messo anche sulla macchina POCAHONTAS.
 
== Let's Encrypt ==
[[Certificati Lets'Encrypt]]

Versione attuale delle 16:08, 3 apr 2024

Certificati SSL

[modifica]

Esistono diversi tipi di certificati SSL, genericamente si possono suddividere in 3 tipologie

  • DOMAIN VALIDATION
    Validano il dominio. Non c'è nessuna identificazione dell'azienda e non sono consigliati per "scopi commerciali".
    Sono la categoria più economica (~ 70€ all'anno per dominio).
  • ORGANIZATION VALIDATION
    Validano il dominio e identificano l'azienda. Sono molto più costosi (~ 225€ l'anno).
  • EXTENDED ORGANIZATION VALIDATION
    Come l'altro ma con molti servizi aggiuntivi.

Ognuno di questi può avere opzionalmente la caratteristica wildcard che comprende tutti i sottodomini (es. webmobili.it + tavoli.webmobili.it + notte.webmobili.it + cucine.webmobili.it ...).

I nostri consulenti SEO (InTarget) hanno asserito che Google non bada alla qualità del certificato ma solo alla sua presenza.

Apache

[modifica]

Per creare un VirtualHost con certificato autentico aggiungere un file dentro alla cartella /etc/apache2/sites-available con la configurazione personalizzata che utilizzi i certificati giusti.

Esempio pratico:

  • Copiare i file del certificato (crt e key) + il certificato intermedio nella cartella /etc/apache2/ssl/. N.B. Se si dispone del file .cer basta rinominare l'estensione in .crt
  • Unire certificato e certificato intermedio in un unico file con il comando
cat nomesito.com_ssl_certificate.crt nomesito.com_ssl_certificate_intermediate.crt >> nomesito.com_ssl_certificate_bundle.crt

Ricordarsi di mettere in /etc/apache2/ssl/ i tre file

  • nomesito.com_ssl_certificate.crt
  • nomesito.com_private_key.key
  • nomesito.com_ssl_certificate_bundle.crt

Il virtualhost aggiunge le direttive SSLEngine, SSLCertificateFile e SSLCertificateKeyFile.
È possibile configurare un redirect http => https direttamente dal virtualhost.

Esempio pratico:

#
# blog.designbest.com
#

<VirtualHost *:80>
        ServerName blog.designbest.com
        Redirect / https://blog.designbest.com/
</VirtualHost>

<IfModule mod_ssl.c>
        <VirtualHost *:443>
                ServerAdmin s.vincenzi@webmobili.it
                ServerName blog.designbest.com

                DirectoryIndex index.html index.htm index.php
                DocumentRoot /var/www/blog.designbest.com/
                Alias /phpmyadmin /usr/share/phpmyadmin

                <Directory />
                        Options FollowSymLinks
                        AllowOverride All
                </Directory>

                <Directory /var/www/blog.designbest.com/>
                        Options -Indexes +FollowSymLinks +MultiViews
                        AllowOverride All
                        Order allow,deny
                        Allow from all
                </Directory>

                SSLEngine on
                SSLCertificateFile /etc/apache2/ssl/designbest.com_ssl_certificate_bundle.crt
                SSLCertificateKeyFile /etc/apache2/ssl/designbest.com_private_key.key

                ErrorLog ${APACHE_LOG_DIR}/blog.designbest.com/error.log
                CustomLog ${APACHE_LOG_DIR}/blog.designbest.com/access.log combined
        </VirtualHost>
</IfModule>

Nginx

[modifica]

Per creare un VirtualHost con certificato ssl aggiungere un file dentro alla cartella /etc/nginx/sites-available con la configurazione personalizzata che utilizzi i certificati giusti. Per renderlo disponibile creare un symlink dentro alla cartella /etc/nginx/sites-enabled e restartare nginx.

Esempio pratico:

  • Copiare i file del certificato (crt e key) + il certificato intermedio nella cartella /etc/nginx/ssl/. N.B. Se si dispone del file .cer basta rinominare l'estensione in .crt
  • Unire certificato e certificato intermedio in un unico file con il comando
cat nomesito.com_ssl_certificate.crt nomesito.com_ssl_certificate_intermediate.crt >> nomesito.com_ssl_certificate_bundle.crt

Ricordarsi di mettere in /etc/nginx/ssl/ i tre file

  • nomesito.com_ssl_certificate.crt
  • nomesito.com_private_key.key
  • nomesito.com_ssl_certificate_bundle.crt


Per il momento su MULAN c'è solo designbest.com .
wm4pr.com è settato ma non usato. In uso in Test su POCAHONTAS.

  • Creare il virtual host
sudo touch /etc/nginx/sites-available/nomesito.com
sudo nano /etc/nginx/sites-available/nomesito.com

e scriverci dentro qualcosa come

server {
	listen 443 http2;
	ssl on;
	ssl_certificate /etc/nginx/ssl/nomesito.com_ssl_certificate_bundle.crt;
	ssl_certificate_key /etc/nginx/ssl/nomesito.com_ssl_certificate.key;
	
	server_name nomesito.com;

	location / {
		proxy_pass http://127.0.0.1:80;
		proxy_set_header X-Real-IP  $remote_addr;
		proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
		proxy_set_header X-Forwarded-Proto https;
		proxy_set_header X-Forwarded-Port 443;
		proxy_set_header Host $host;
	}
}


  • Pubblicare il virtual host su nginx
sudo ln -s /etc/nginx/sites-available/nomesito.com /etc/nginx/sites-enabled
sudo service nginx restart



Verificare la validità del certificato su siti come questo: SSL Certificate Checker

Richiesta CSR

[modifica]

Genera un file .csr e un file .key che sono la richiesta di certificato per il server in questione e la chiave privata.

openssl req -new -newkey rsa:2048 -nodes -keyout designbestmagazine.com_private_key.key -out designbestmagazine.com.csr

Importante, alla domanda sul Common Name specificare il NOME DEL DOMINIO (es designbestmagazine.com)

Certificato SSL autofirmato

[modifica]

Per generare un certificato autofirmato

sudo mkdir /etc/nginx/ssl
sudo openssl req -x509 -nodes -days 3650 -newkey rsa:2048 -keyout /etc/nginx/ssl/nginx.key -out /etc/nginx/ssl/nginx.crt

Alla domanda sul common name è necessario scrivere il nome della macchina sul dominio (lo stesso di a /etc/hostname).
Il certificato generato vale solo 10 anni, cambiare il parametro days a piacimento

Trovaprodotti

[modifica]

E' stato acquistato il certificato per *.wm4pr.com di tipo domain validation da 1&1. Ricordo che 1&1 ci hanno intimato la creazione della mail hostmaster@wm4pr.com per le comunicazioni relative ai certificati. La posta si scarica dalla webmail di register.

I file (.cer , .pfx e .key) si trovano sul server ARIEL nel folder
D:\WM3Resources\SSL
Per settare il binding https in IIS: aggiungere il binding, selezionare https e selezionare il certificato stando attenti a checkare Request Server Name Indication.

I nostri binding

[modifica]

Certificato SSL designbest

[modifica]

DESIGNBEST

  • designbest.com
  • www.designbest.com

DESIGNBEST-AREAPROGETTI

  • projects.designbest.com

DESIGNBEST-COMMERCE

  • shop.designbest.com

DESIGNBEST-COMMERCE-SYNC

  • testcommerce.designbest.com

DESIGNBEST-IMAGES

  • immagini.designbest.com

DESIGNBEST-MAGAZINE

  • magazine.designbest.com

DESIGNBEST-RESTSERVICE

  • ws.designbest.com

DESIGNBEST-STATISTICHE

  • statistics.designbest.com

USO

  • my.designbest.com

BLOG DESIGNBEST (MERIDA)

  • blog.designbest.com (no Let's Encrypt, certbot lancia un errore che butta giù apache)
  • promo.designbest.com (ora gestito con Let's Encrypt)

DESIGNBEST (MULAN)

  • designbest.com
  • www.designbest.com

Problema con file PFX

[modifica]

Nel maggio 2022 è capitato che il file del certificato designbest per Windows, il PFX scaricato dal portale di ionos fosse corrotto.
La soluzione è stata generarlo autonomamente a partire dai file certificate.cer , certificate_intermediate.cer e certificate.key.

Dalla macchina MERIDA , in una cartella con i tre file,
prima genero un bundle

cat designbest.com_ssl_certificate.cer designbest.com_ssl_certificate_intermediate.cer >> designbest.com_ssl_certificate_bundle.cer

Poi creo il file .pfx con openssl

openssl pkcs12 -export -name "*.designbest.com" -out designbest.com.pfx -inkey designbest.com_private_key.key -in designbest.com_ssl_certificate.crt -in designbest.com_ssl_certificate_bundle.crt

Specificando il Friendly Name (*.designbest.com) che apparirà su IIS e i file che devono essere inclusi.
Viene chiesta la password, usare sempre la stessa solita.

Certificato SSL webmobili

[modifica]

DESIGNBEST-IMAGES

  • immagini.webmobili.it

WEBMOBILI-REPOSITORY

  • repository.webmobili.it

BLOG DESIGNBEST (su Merida)

  • www.webmobili.it
  • webmobili.it
  • trovaprodotti.webmobili.it

Certificato SSL wm4pr

[modifica]

TROVAPRODOTTI

  • wm4pr.com
  • www.wm4pr.com
  • test.wm4pr.com (su JASMINE)

TROVAPRODOTTI LEGACY

  • legacy.wm4pr.com

TROVAPRODOTTI-IMAGES

  • imgs.wm4pr.com

Certificato SSL dbdemo47

[modifica]

Tutto Let'sEncrypt.
Ricordarsi di passare tutti i WebSites di JASMINE.
Il certificato deve essere messo anche sulla macchina POCAHONTAS.

Let's Encrypt

[modifica]

Certificati Lets'Encrypt