GNU/Linux >> Linux Esercitazione >  >> Ubuntu

Tutorial OpenSSL:come funzionano i certificati SSL, le chiavi private e le CSR?

Introduzione

Inizialmente sviluppato da Netscape nel 1994 per supportare le capacità di e-commerce di Internet, Secure Socket Layer (SSL) ha fatto molta strada. In mezzo a tutti gli attacchi informatici, i certificati SSL sono diventati una necessità regolare per qualsiasi sito Web attivo.

Anche se Secure Socket Layer (SSL) e Transport Socket Layer (TLS) sono diventati abbastanza onnipresenti, ci prenderemo un breve momento per spiegare cosa fanno e come lo fanno.

Non saltare il Tutorial OpenSSL sezione.

Cos'è un certificato SSL? Come funziona SSL?

Un certificato Secure Socket Layer (SSL) è un protocollo di sicurezza che protegge i dati tra due computer utilizzando la crittografia.

In genere, i certificati SSL vengono utilizzati su pagine Web che trasmettono e ricevono dati sensibili dell'utente finale, come il numero di previdenza sociale, i dettagli della carta di credito, l'indirizzo di casa o la password. I moduli di pagamento online sono un buon esempio e di solito crittografano le suddette delicate informazioni utilizzando la tecnologia SSL a 128 o 256 bit.

I certificati SSL garantiscono l'identità di un computer remoto, più comunemente un server, ma confermano anche l'identità del tuo computer al computer remoto per stabilire una connessione sicura. Mantenere Internet sicuro è sempre stata una strada a doppio senso e grazie alla crittografia SSL, il server "stringe la mano" al tuo personal computer ed entrambe le parti sanno con chi stanno comunicando.

Qual ​​è la differenza tra TLS e SSL?

Non ce n'è . Transport Layer Security (TLS) è una versione aggiornata di Secure Socket Layer (SSL). Anche se la maggior parte delle connessioni sicure avviene tramite i protocolli TLS, le persone continuano a chiamarlo SSL. In questo caso, è lecito affermare che le vecchie abitudini sono dure a morire.

Come faccio a sapere se una pagina Web è protetta con SSL?

Come utente di Internet, probabilmente hai notato un lucchetto e la barra delle informazioni sul sito diventa verde nel tuo browser web, così come https protocollo di connessione.

Questo è il tuo browser che ti informa che un sito Web è protetto utilizzando la crittografia SSL. Facendo clic sulla barra delle informazioni del sito verranno forniti ulteriori dettagli sulla connessione e informazioni dettagliate sul certificato SSL stesso.

Perché ho bisogno di un certificato SSL?

Facciamo un esempio di vita reale.

Sei il proprietario di un sito di e-commerce che ha appena noleggiato un server con phoenixNAP e ha lanciato un paio di nuovi negozi di e-commerce. Vuoi che i tuoi visitatori si sentano al sicuro quando visitano il tuo e-store e, soprattutto, non esitano ad accedere ed effettuare un acquisto.

Un certificato SSL e una connessione HTTPS infondono la fiducia dei consumatori. Il settore dell'e-commerce è strettamente legato alla fiducia dei consumatori e potremmo anche dire che la tua attività dipende dal fatto che i tuoi clienti si sentano al sicuro durante l'intera esperienza di acquisto.

Oltre agli ovvi motivi di sicurezza, un certificato SSL aumenta la SEO e il ranking di Google del tuo sito e crea la fiducia dei clienti, migliorando di conseguenza i tassi di conversione complessivi.

Se ciò non bastasse per farti prendere in considerazione l'idea di ottenere un certificato SSL per il tuo dominio, Google ti convincerà sicuramente. Vale a dire, a partire da luglio 2018 Google contrassegna ogni sito web senza SSL come non sicuro.

Dove posso ottenere un certificato SSL?

I certificati SSL sono verificati ed emessi da un'autorità di certificazione (CA). Fai domanda generando una CSR con una coppia di chiavi sul tuo server che, idealmente, conterrebbe il certificato SSL. La CSR contiene dettagli organizzativi cruciali che la CA verifica.

  1. Genera una CSR e una coppia di chiavi in ​​locale sul tuo server. La coppia di chiavi è composta da una chiave pubblica e una privata.
  2. Invia la CSR e la chiave pubblica a una CA che verificherà la tua identità legale e se possiedi e controlli il dominio inviato nella domanda. L'autorità di certificazione esegue un controllo sulla tua organizzazione e convalida se l'organizzazione è registrata nella posizione fornita nella CSR e se il dominio esiste.
  3. Una volta verificata, l'organizzazione riceve una copia del proprio certificato SSL, inclusi i dettagli aziendali e la chiave pubblica. L'organizzazione può ora installare il certificato sul proprio server.
  4. Quando una CA emette il certificato, si collega al certificato "radice attendibile" di un'autorità di certificazione. I certificati radice sono incorporati in ogni browser e collegati a certificati emessi individualmente per stabilire una connessione HTTPS.

Tipi di certificati SSL

Assicurati di scegliere una CA che supporti il ​​tipo di certificato di cui hai bisogno. Per tua comodità, di seguito è riportata una descrizione di ciascun tipo di certificato:

Certificato SSL a dominio singolo

Questo tipo è pensato per essere utilizzato per un singolo dominio e non offre supporto per i sottodomini. Ad esempio, se il certificato deve essere utilizzato per www.phoenixnap.com, non supporterà nessun altro nome di dominio.

Domini multipli (certificati SAN/UC)

Più certificati di dominio vengono utilizzati per numerosi domini e sottodomini. Oltre all'FQDN, puoi aggiungere il supporto per altri (sotto)domini aggiungendoli al campo Nome alternativo soggetto. Ad esempio, un certificato SAN può includere il dominio www.phoenixnap.com, il relativo sottodominio help.phoenixnap.com e un altro dominio (ad es. www.examplesite.com).

Certificato jolly

I certificati con caratteri jolly possono essere utilizzati per un dominio, inclusi tutti i suoi sottodomini. La differenza principale è che invece di essere emessi per uno specifico FQDN, i certificati jolly vengono utilizzati per un'ampia gamma di sottodomini. Ad esempio, un certificato con caratteri jolly emesso per *.phoenixnap.com potrebbe essere utilizzato per un'ampia gamma di sottodomini nel dominio principale www.phoenixnap.com, come mostrato nell'immagine seguente.

Livelli di convalida del certificato SSL

Le CA hanno diversificato i livelli di convalida dei certificati in risposta a una crescente domanda di certificati. Alcune organizzazioni utilizzano SSL solo per la crittografia, mentre altre vogliono mostrare ai propri clienti che sono un'azienda affidabile. Esigenze diverse hanno portato a diversi livelli di convalida dei certificati.

Convalida del dominio (DV SSL)

Questo tipo di certificato SSL è ideale per proteggere blog, app di social media e siti Web personali. L'autorità di certificazione non garantisce l'identità di un'organizzazione e viene verificata solo la proprietà del dominio.

Convalida estesa (EV SSL)

L'autorità di certificazione verifica la proprietà del dominio e conduce un'indagine approfondita sull'organizzazione associata al certificato EV. Vengono seguite regole rigorose durante la revisione di una richiesta di convalida estesa e la CA deve verificare quanto segue:

  1. L'identità dell'organizzazione corrisponde a documenti ufficiali.
  2. L'esistenza fisica, giuridica e operativa dell'entità.
  3. L'organizzazione ha i diritti esclusivi per utilizzare il dominio specificato nel certificato SSL.
  4. L'organizzazione ha opportunamente autorizzato l'emissione del certificato EV SSL.

Crea certificato SSL

Il modo in cui generare una richiesta di firma del certificato dipende esclusivamente dalla piattaforma che stai utilizzando e dal particolare strumento scelto.

Genereremo una CSR utilizzando OpenSSL .

OpenSSL è uno strumento ampiamente utilizzato per lavorare con file CSR e certificati SSL ed è disponibile per il download sul sito Web ufficiale di OpenSSL. È uno strumento di implementazione open source per SSL/TLS e viene utilizzato su circa il 65% di tutti i server Internet attivi, il che lo rende lo standard industriale non ufficiale.

Debian e Ubuntu

dpkg -l |grep openssl

Se il pacchetto OpenSSL è installato, restituirà il seguente risultato:

ii libgnutls-openssl27:amd64   2.12.23-12ubuntu2.4   amd64   GNU TLS library - OpenSSL wrapper

ii openssl   1.0.1f-1ubuntu2.16   amd64   Secure Sockets Layer toolkit - cryptographic utility

Se non vedi questo risultato, esegui il seguente comando per installare OpenSSL:

apt-get install openssl

Red Hat o CentOS

Red Hat (versione 7.0 e successive) dovrebbe avere una versione limitata preinstallata di OpenSSL. Offre solo un supporto limitato per IDEA, RC5 e MDC2, quindi potresti voler installare le funzionalità mancanti. Per saperne di più, consulta la documentazione di OpenSSL.

Per verificare se OpenSSL è installato su un server yum (ad es. Red Hat o CentOS), esegui il comando seguente:

rpm -qa | grep -i openssl

Questo comando dovrebbe restituire il seguente risultato:

openssl-1.0.1e-48.el6_8.1.x86_64
openssl-devel-1.0.1e-48.el6_8.1.x86_64
openssl-1.0.1e-48.el6_8.1.i686

Se il tuo formato di output è diverso, significa che OpenSSL non è installato sul tuo server. Esegui il comando seguente per installare OpenSSL:

yum install openssl openssl-devel

Che cos'è una richiesta di firma del certificato (CSR)?

Una richiesta di firma del certificato (CSR) contiene le informazioni più importanti sulla tua organizzazione e dominio.

Di solito, genereresti una CSR e una coppia di chiavi localmente sul server in cui verrà installato il certificato SSL. Tuttavia, questa non è una regola rigida. È possibile generare una CSR e una coppia di chiavi su un server e installare il certificato su un altro. Tuttavia, questo rende le cose più complicate. Tratteremo anche questo scenario.

Secure Socket Layer (SSL) utilizza due lunghe stringhe di numeri generati casualmente, noti come privati e chiavi pubbliche . Una chiave pubblica è disponibile per il pubblico dominio in quanto fa parte del tuo certificato SSL ed è resa nota al tuo server.

La chiave privata deve corrispondere alla CSR con cui è stata generata e, in definitiva, deve corrispondere al certificato creato dalla CSR. Se manca la chiave privata, potrebbe significare che il certificato SSL non è installato sullo stesso server che ha generato la richiesta di firma del certificato.

Una CSR di solito contiene le seguenti informazioni:

Parametro Descrizione Valore di esempio
Nome comune o FQDN FQDN è il nome di dominio completo del tuo sito web. Deve essere uguale a quello che gli utenti digitano nel browser web. www.phoenixnap.com
Nome dell'organizzazione (ad es. azienda) Il nome legale completo della tua organizzazione, inclusi i suffissi come LLC, Corp, ecc. PhoenixNAP, LLC
Nome dell'unità organizzativa La divisione della tua organizzazione che si occupa di questo certificato. NOC
Nome località (ad es. città) La città in cui si trova la tua organizzazione. Fenice
Stato/Regione/Provincia (nome completo) Lo stato o la regione in cui si trova la tua organizzazione. Arizona
Codice Paese (codice di 2 lettere) Il paese in cui si trova la tua organizzazione. Immesso sempre come codice ISO di due lettere. Stati Uniti
Indirizzo e-mail Indirizzo email utilizzato per contattare il webmaster del sito. [email protetta]
Chiave pubblica Una chiave creata automaticamente che viene generata con la CSR e va nel certificato. Un blocco di testo codificato simile alla chiave privata. Vedi un esempio di chiave privata di seguito.

Si prega di notare che ci sono alcune convenzioni di denominazione da considerare. Nome organizzazione e Nome unità organizzativa non deve contenere i seguenti caratteri:< > ~ ! @ # $ % ^ * / \ ( ) ?.,&

Come generare una CSR

Le richieste di firma del certificato (CSR) vengono generate con una coppia di chiavi:una chiave pubblica e una privata. Solo la chiave pubblica viene inviata a un'autorità di certificazione e inclusa nel certificato SSL e funziona insieme alla tua chiave privata per crittografare la connessione. Chiunque può avere accesso alla tua chiave pubblica e verifica che il certificato SSL sia autentico.

Una chiave privata è un blocco di testo codificato che, insieme al certificato, verifica la connessione sicura tra due macchine. Non deve essere accessibile pubblicamente e non deve essere inviato alla CA.

L'integrità di un certificato si basa sul fatto che solo tu conosci la chiave privata. In caso di compromissione o smarrimento, ridigita il certificato con una nuova chiave privata il prima possibile. La maggior parte delle CA non addebita alcun costo per questo servizio.

Opzione 1:genera una CSR

La prima cosa da fare sarebbe generare localmente una coppia di chiavi RSA a 2048 bit. Questa coppia conterrà sia la tua chiave privata che quella pubblica. Puoi usare Java Key Tool o qualche altro strumento, ma lavoreremo con OpenSSL.

Per generare una chiave pubblica e privata con una richiesta di firma del certificato (CSR), esegui il seguente comando OpenSSL:

openssl req -out certificatesigningrequest.csr -new -newkey rsa:2048 -nodes -keyout privatekey.key

Dopo aver generato una CSR con una coppia di chiavi, è difficile vedere quali informazioni contenga poiché non saranno in un formato leggibile dall'uomo. Puoi facilmente decodificare il CSR sul tuo server usando il seguente comando OpenSSL:

openssl req -in server.csr -noout -text

Si consiglia di decodificare la CSR e verificare che contenga le informazioni corrette sulla propria organizzazione prima che venga inviata a un'autorità di certificazione. Ci sono molti decoder CSR sul web che possono aiutarti a fare lo stesso semplicemente copiando e incollando il contenuto del tuo file CSR.

Per tua comodità, abbiamo elencato due (2) strumenti di decodifica CSR online:

  • Acquirente SSL
  • Grippio rosso

Opzione 2:genera una CSR per una chiave privata esistente

Si consiglia di emettere una nuova chiave privata ogni volta che si genera una CSR. Se, per qualsiasi motivo, devi generare una richiesta di firma del certificato per una chiave privata esistente, utilizza il seguente comando OpenSSL:

openssl req -out CSR.csr -key privateKey.key -new

Opzione 3:genera una CSR per un certificato esistente e una chiave privata

openssl x509 -x509toreq -in certificate.crt -out CSR.csr -signkey privateKey.key

Uno scenario improbabile in cui ciò può tornare utile è se è necessario rinnovare il certificato esistente, ma né tu né la tua autorità di certificazione disponete della CSR originale. Questo estrarrà informazioni sul tuo dominio e organizzazione dal certificato SSL e lo utilizzerà per creare una nuova CSR, risparmiando così tempo.

Opzione 4:genera un certificato autofirmato

Un certificato autofirmato viene solitamente utilizzato per ambienti di test e sviluppo e su una intranet. Generiamo un certificato autofirmato usando il seguente comando OpenSSL:

openssl req -newkey rsa:2048 -nodes -keyout domain.key -x509 -days 365 -out domain.crt

I -days il parametro è impostato su 365, il che significa che il certificato è valido per i prossimi 365 giorni. Il -x509 parametro indica che questo sarà un certificato autofirmato. Viene generata una CSR temporanea, utilizzata solo per raccogliere le informazioni necessarie.

Le autorità di certificazione non verificano i certificati autofirmati. Pertanto, non sono sicuri come i certificati verificati. Se una CA non ha firmato il certificato, tutti i principali browser visualizzeranno un messaggio di errore "certificato non attendibile", come quello mostrato nell'immagine sottostante.

Se non vuoi proteggere la tua chiave privata con una password, puoi aggiungere i -nodes parametro.

Opzione 5:genera un certificato autofirmato da una chiave privata e una CSR esistenti

Se disponi già di una CSR e di un privato e devi generare un certificato autofirmato, utilizza il seguente comando:

openssl x509 \ -signkey domain.key \ -in domain.csr \ -req -days 365 -out domain.crt

I -days il parametro è impostato su 365, il che significa che il certificato è valido per i prossimi 365 giorni.

Come copiare il contenuto di un file CSR

Apri la directory in cui si trova il tuo file CSR. Digita il seguente comando:

sudo cat domain.csr

Sostituisci dmain con il parametro FQDN della tua CSR. Questo comando visualizzerà il contenuto del file CSR. Copia tutto il contenuto, partendo da "INIZIO RICHIESTA CERTIFICATO" e terminando con "FINE RICHIESTA CERTIFICATO".

Rinnovo del certificato:non riutilizzare le vecchie CSR

Solo perché alcuni server Web consentono di utilizzare i vecchi CSR per il rinnovo dei certificati non significa che dovresti usarli. Come precauzione di sicurezza, genera sempre una nuova CSR e una chiave privata quando rinnovi un certificato. Aggrapparsi alla stessa chiave privata è una strada lastricata di vulnerabilità di sicurezza.

Inoltre, si consiglia di rinnovare un certificato SSL prima della data di scadenza. In caso contrario, sarà richiesto l'acquisto di un nuovo certificato.

Come verificare CSR, certificato SSL e chiave

Come abbiamo già accennato, sarebbe opportuno verificare le informazioni fornite nella CSR prima di richiedere un certificato. Utilizza i seguenti comandi per verificare la richiesta di firma del certificato, il certificato SSL e la chiave:

RSI

openssl req -text -noout -verify -in server.csr

Questo comando verificherà la CSR e visualizzerà i dati forniti nella richiesta.

Chiave

Il seguente comando verificherà la chiave e la sua validità:

openssl rsa -in server.key -check

Certificato SSL

Quando devi controllare un certificato, la sua data di scadenza e chi lo ha firmato, usa il seguente comando OpenSSL:

openssl x509 -in server.crt -text -noout

Chiave privata

Una chiave privata viene codificata e creata in un formato PEM basato su Base-64 che non è leggibile dall'uomo. Puoi aprirlo con qualsiasi editor di testo, ma tutto ciò che vedrai sono alcune dozzine di righe di quelli che sembrano simboli casuali racchiusi con intestazioni di apertura e chiusura. Vedi sotto un esempio di chiave privata:

-----BEGIN RSA PRIVATE KEY-----
MIICXAIBAAKBgQCVqGpH2S7F0CbEmQBgmbiDiOOGxhVwlG+yY/6OBQoPKcx4Jv2h
vLz7r54ngjaIqnqRNP7ljKjFLp5zhnAu9GsdwXbgLPtrmMSB+MVFHTJvKjQ+eY9p
dWA3NbQusM9uf8dArm+3VrZxNHQbVGXOIAPNHTO08cZHMSqIDQ6OvLma7wIDAQAB
AoGAbxKPzsNh826JV2A253svdnAibeSWBPgl7kBIrR8QWDCtkH9fvqpVmHa+6pO5
5bShQyQSCkxa9f2jnBorKK4+0K412TBM/SG6Zjw+DsZd6VuoZ7P027msTWQrMBxg
Hjgs7FSFtj76HQ0OZxFeZ8BkIYq0w+7VQYAPBWEPSqCRQAECQQDv09M4PyRVWSQM
S8Rmf/jBWmRnY1gPPEOZDOiSWJqIBZUBznvOPOOQSH6B+vee/q5edQA2OIaDgNmn
AurEtUaRAkEAn7/65w+Tewr89mOM0RKMVpFpwNfGYAj3kT1mFEYDq+iNWdcSE6xE
2H0w3YEbDsSayxc36efFnmr//4ljt4iJfwJAa1pOeicJhIracAaaa6dtGl/0AbOe
f3NibugwUxIGWkzlXmGnWbI3yyYoOta0cR9fvjhxV9QFomfTBcdwf40FgQJAH3MG
DBMO77w8DK2QfWBvbGN4NFTGYwWg52D1Bay68E759OPYVTMm4o/S3Oib0Q53gt/x
TAUq7IMYHtCHZwxkNQJBAORwE+6qVIv/ZSP2tHLYf8DGOhEBJtQcVjE7PfUjAbH5
lr++9qUfv0S13gXj5weio5dzgEXwWdX2YSL/asz5DhU=
-----END RSA PRIVATE KEY-----

Nella maggior parte dei casi, non sarà necessario importare il codice della chiave privata nel filesystem del server, poiché verrà creato in background durante la generazione della CSR e quindi salvato automaticamente sul server. Durante l'installazione del certificato SSL, il sistema recupera la chiave.

Verifica se un certificato e una chiave privata corrispondono

Per verificare, è necessario stampare i checksum md5 e confrontarli. Esegui il seguente comando:

openssl x509 -noout -modulus -in server.crt| openssl md5
openssl rsa -noout -modulus -in server.key| openssl md5

Risoluzione dei problemi relativi a SSL

Il sistema non recupera automaticamente la chiave privata

Alcuni sistemi non automatizzano la procedura di recupero di una chiave privata. Inoltre, se devi installare un certificato esistente su un altro server, ovviamente non puoi aspettarti che recuperi la chiave privata. La difficoltà principale qui è come trovare la posizione esatta della chiave. Il modo in cui è possibile recuperare la chiave dipende dal sistema operativo del server in uso e dal fatto che sia stata utilizzata un'interfaccia a riga di comando o un pannello di controllo di hosting Web di un tipo particolare per la generazione della CSR.

Devo individuare la mia chiave privata precedentemente installata

Se il tuo certificato è già stato installato, segui i passaggi seguenti che ti aiuteranno a individuare la tua chiave privata sui sistemi operativi più diffusi.

Nginx

Dovresti riuscire a trovare la posizione della chiave privata del tuo server nel file host virtuale del tuo dominio.

Vai alla posizione del server principale del sito (di solito è /var/www/directory ) e aprire il file di configurazione principale del sito. Cerca il ssl_certificate_key direttiva che fornirà il percorso del file della chiave privata.

Se non riesci a trovare il ssl_certificate_key direttiva, potrebbe essere presente un file di configurazione separato per i dettagli SSL. Cerca qualcosa di descrittivo, come ssl.conf .

Apache

Quando si utilizza la libreria OpenSSL su Apache, la chiave privata viene salvata in /usr/local/ssl per impostazione predefinita. Esegui openssl version -a , un comando OpenSSL che identifica la versione di OpenSSL in esecuzione.

L'output mostrerà la directory che contiene la chiave privata. Vedi l'output di esempio di seguito:

OpenSSL 1.0.2g  1 Dec 2016

built on: reproducible build, date unspecified

platform: debian-amd64

options: bn(64,64) rc4(16x,int) des(idx,cisc,16,int) blowfish(idx)

compiler: cc -I. -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -

D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -m64 -DL_ENDIAN -g -O2 -fstack-protector-

strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -Wl,-

Bsymbolic-functions -Wl,-z,relro -Wa,--noexecstack -Wall -DMD32_REG_T=int -

DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -

DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -

DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM

OPENSSLDIR: "/usr/lib/ssl"

L'ultima riga OPENSSLDIR definisce il percorso del file. Nell'esempio fornito, è la posizione predefinita /usr/lib/ssl .

Se non hai generato il CSR con OpenSSL, devi trovare e accedere al tuo file di configurazione Apache principale, che è apache2.conf o httpd.conf . La direttiva SSLCertficateKeyFile specificherà il percorso del file della chiave privata.

Windows (IIS)

Sui server che eseguono Windows Internet Information Services, il sistema operativo salva la chiave privata in una cartella nascosta, proprio come qualsiasi sistema operativo Windows normale archivia i dati di sistema critici.

Tuttavia, esportando un file .pfx file, puoi recuperare la chiave privata e i certificati. Per farlo, segui i passaggi seguenti:

  1. Apri la Microsoft Management Console (MMC).
  2. Situato in Console Root, espandi i Certificati (computer locale) albero.
  3. Il tuo certificato si trova in Personale o Cartella Web Hosting . Trova il certificato che stai cercando. Puoi identificare ogni certificato in base al suo Nome comune (Dominio).
  4. Fai clic con il pulsante destro del mouse sul certificato che desideri esportare, quindi seleziona Tutte le attività> Esporta .
  5. Segui la procedura guidata per esportare il .pfx file.

Hai quello che ti serve se vuoi salvare un backup o installare il certificato su un altro server Windows.

Se devi installare il certificato su un altro server che non esegue Windows (ad es. Apache), devi convertire il file .pfx e separare i file .key e .crt/.cer. Puoi farlo con OpenSSL.

Come spostare un certificato SSL da un server Windows a un server non Windows?

Per spostare un certificato da un server Windows a un server non Windows, devi estrarre la chiave privata da un file .pfx utilizzando OpenSSL.

  1. Dopo aver scaricato il file .pfx come descritto nella sezione precedente, eseguire il seguente comando OpenSSL per estrarre la chiave privata dal file:
openssl pkcs12 -in mypfxfile.pfx -out privatekey.txt -nodes

Dove mypfxfile.pfx è il backup dei certificati del tuo server Windows.

  1. Questo comando creerà un privatekey.txt file di uscita. Usa un editor di testo per aprire il file e vedrai la chiave privata in cima all'elenco nel formato standard:
-----BEGIN RSA PRIVATE KEY-----
(Encrypted Text Block)
-----END RSA PRIVATE KEY-----
  1. Copia la chiave privata, inclusi i tag "BEGIN" e "END", e incollala in un nuovo file di testo. Salva il file di testo come Your_Domain_Name.key.

Non riesco a trovare la mia chiave privata

Se non riesci a trovare la chiave privata, cerca gli indizi. Una cosa da notare è se il server fornisce una connessione HTTPS funzionante. In tal caso, la chiave privata è accessibile al server e molto probabilmente si trova da qualche parte sul server.

Il passaggio logico sarebbe cercare un .key file. In alcuni casi, OpenSSL memorizza il file .key nella stessa directory da cui OpenSSL -req comando è stato eseguito.

Se hai provato di tutto e ancora non riesci a trovare il file .key, c'è una leggera possibilità che la chiave sia persa. Niente panico, la cosa intelligente da fare sarebbe generare una nuova CSR e riemettere il certificato. Assicurati di ricordare la posizione della chiave privata questa volta.

Comandi OpenSSL per la conversione di CSR

Se stai lavorando con server Apache, le richieste di firma dei certificati (CSR) e le chiavi vengono archiviate in formato PEM. Ma cosa succede se si desidera trasferire CSR su un server Tomcat o Windows IIS? Bene, dovresti convertire un file PEM standard in un file PFX. I seguenti comandi ti aiuteranno a fare esattamente questo.

Convertire una CSR PEM e una chiave privata in PKCS12 (.pfx .p12)

I file FKCS12 vengono utilizzati per esportare/importare certificati in Windows IIS.

openssl pkcs12 \ -inkey domain.key \ -in domain.crt \ -export -out domain.pfx

Questo prenderà la chiave privata e il CSR e lo convertirà in un unico file .pfx. Puoi impostare una passphrase di esportazione, ma puoi lasciarla vuota. Tieni presente che unendo le stringhe di caratteri del certificato end-to-end in un unico file PEM, puoi esportare una catena di certificati in un formato di file .pfx.

Convertire un PKCS12 in PEM CSR

openssl pkcs12 \ -in domain.pfx \ -nodes -out domain.combined.crt

Se il file .pfx contiene una catena di certificati, anche il file .crt PEM conterrà più elementi.

Convertire PEM in DER

DER è un formato binario solitamente utilizzato con Java. Per convertire un file ASCII PEM in DER, utilizzare il seguente comando OpenSSL:

openssl x509 \ -in domain.crt \ -outform der -out domain.der

Convertire DER in PEM

Se devi convertire un file .der in PEM, usa il seguente comando OpenSSL:

openssl x509 \ -inform der -in domain.der \ -out domain.crt

Crittografa una chiave privata non crittografata

Il seguente comando OpenSSL prenderà una chiave privata non crittografata e la crittograferà con la passphrase da te definita.

openssl rsa -des3 \ -in unencrypted.key \ -out encrypted.key

Definisci la passphrase per crittografare la chiave privata.

Decrittografare una chiave privata crittografata

Il seguente comando OpenSSL prenderà una chiave privata crittografata e la decrittograferà.

openssl rsa \ -in encrypted.key \ -out decrypted.key

Quando richiesto, inserisci la passphrase per decrittografare la chiave privata.


Ubuntu
  1. Come proteggere un account abilitato per cPanel con un certificato SSL Sectigo

  2. Come gestire i certificati Lets Encrypt SSL/TLS con certbot

  3. Come verificare se il certificato SSL è SHA1 o SHA2 utilizzando OpenSSL?

  4. Come applicare un certificato SSL in Plesk

  5. Come proteggere le connessioni con i certificati SSL/TLS

Come generare e rinnovare i certificati SSL Let's Encrypt in Plesk

Come generare certificati SSL autofirmati utilizzando OpenSSL

Come installare il certificato SSL gratuito per Apache su CentOS 8

Come installare un certificato SSL in cPanel?

Come installare un certificato SSL su cPanel

Come controllare la data di scadenza SSL su Plesk