Creazione di certificati personali (OpenSSL in Windows/Linux) - LSM 3.6 SP1 Business + Prof.

In questo capitolo vengono creati, ad esempio, tutti i file necessari ad assicurare la comunicazione verso il RouterNode 3 con certificati personali.

Nell’esempio viene utilizzato un nome di azienda fittizio (“OpenAllDoors”). Adattare ev. nomi di file, file di configurazione e comandi alla propria situazione.

Si noti che:

  • Tipo di chiave supportato: prime256v1: X9.62/curva SECG tramite un campo finito da 256 Bit
  • Certificato e chiave devono essere caricati nel formato DER.
  • I file dei certificati nel formato DER possono avere una dimensione massima pari a 768 byte. I dati relativi all’azienda nei file di configurazione influenzano le dimensioni dei file DER.
  • Il certificato di dispositivo CA autofirmato (CustomDeviceCA.crt) deve essere installato sul client (computer), al fine di poter verificare il certificato di dispositivo del RouterNode 3. Il file è in formato PEM e non deve essere convertito.
  • Il certificato client CA autofirmato(CustomClientCA.crt) è opzionale, SimonsVoss raccomanda, però, di installare sul client anche questo certificato. In caso contrario, il client non è in grado di verificare integralmente i certificati e visualizza un avviso.
  • Per l’aggiunta alla memoria dei certificati di Windows è necessario archiviare il certificato client e la chiave in un file PFX.

    Questa descrizione è presentata esclusivamente a titolo esemplificativo. SimonsVoss non può fornire supporto nella creazione dei certificati. In caso di dubbi si prega di contattare la divisione IT della propria azienda.

    OpenSSL su sistemi operativi Windows (Win64 OpenSSL Command Prompt)

    1. OpenSSL 4.0 o più recente installato.
    2. Terminale OpenSSL aperto.
    1. Creare la chiave privata per il certificato di dispositivo CA autofirmato:
      openssl ecparam -out customdeviceca.key -name prime256v1 -genkey
    2. Creare il file di configurazione namens device_ca.cnf (per il contenuto vedere device_ca.cnf).
    3. Creare il certificato di dispositivo CA autofirmato:
      openssl req -new -x509 -sha256 -days 3650 -key customdeviceca.key -out CustomDeviceCA.crt -config device_ca.cnf -extensions v3_ca
    4. Creare la chiave privata per il certificato di dispositivo:
      openssl ecparam -out customdevice.key -name prime256v1 -genkey
    5. Creare un file di configurazione namens device.cnf (per il contenuto vedere device.cnf).
    6. Creare una richiesta di firma per il certificato di dispositivo:
      openssl req -new -sha256 -key customdevice.key -out customdevice.csr -config device.cnf
    7. Creare un file di configurazione namens device_ext.cnf (per il contenuto vedere device_ext.cnf).
    8. Creare il certificato firmato CA:
      openssl.exe x509 -req -sha256 -days 3650 -in customdevice.csr -CA CustomDeviceCA.crt -CAkey customdeviceca.key -out CustomDevice.crt -extensions v3_req -extfile device_ext.cnf
    9. Convertire la chiave nel formato DER:
      openssl ec -inform PEM -in customdevice.key -outform DER -out customdevice_key.der
    10. Convertire il certificato nel formato DER:
      openssl x509 -inform PEM -in CustomDevice.crt -outform DER -out customdevice_crt.der
    11. Creare la chiave privata per il certificato client CA autofirmato:
      openssl ecparam -out customclientca.key -name prime256v1 -genkey
    12. Creare un file di configurazione namens client_ca.cnf (per il contenuto vedere client_ca.cnf).
    13. Creare il certificato client CA autofirmato:
      openssl req -new -x509 -sha256 -days 3650 -key customclientca.key -out CustomClientCA.crt -config client_ca.cnf -extensions v3_ca
    14. Convertire il certificato Client-CA nel formato DER:
      openssl x509 -inform PEM -in CustomClientCA.crt -outform DER -out CustomClientCa_crt.der
    15. Generare la chiave privata per il certificato client:
      openssl ecparam -out customclient.key -name prime256v1 -genkey
    16. Creare un file di configurazione namens client.cnf (per il contenuto vedere client.cnf).
    17. Creare una richiesta di firma per il certificato client:
      openssl req -new -sha256 -key customclient.key -out customclient.csr -config client.cnf
    18. Creare un file di configurazione namens client_ext.cnf (per il contenuto vedere client_ext.cnf).
    19. Creare il certificato client firmato CA:
      openssl.exe x509 -req -sha256 -days 3650 -in customclient.csr -CA CustomClientCA.crt -CAkey customclientca.key -out CustomClient.crt -extensions v3_req -extfile client_ext.cnf
    20. Convertire il certificato client e la chiave in un file PFX:
      openssl pkcs12 -export -inkey customclient.key -in CustomClient.crt -out CustomClient.pfx
    21. NOTA

      notice

      Password di esportazione

      Il file PFX contiene la chiave privata riservata customclient.key. OpenSSL richiede quindi una password al momento di creare il file PFX. È necessario immettere la password, quando si vogliono aggiungere in Windows i certificati con il file PFX.

    Devono essere stati generati i file seguenti:

    OpenSSL su sistemi operativi Linux

    1. OpenSSL 4.0 o più recente installato.
    2. Terminale OpenSSL aperto.
    1. Creare la chiave privata per il certificato di dispositivo CA autofirmato:
      openssl ecparam -out customdeviceca.key -name prime256v1 -genkey
    2. Creare il file di configurazione namens device_ca.cnf (per il contenuto vedere device_ca.cnf).
    3. Creare il certificato di dispositivo CA autofirmato:
      openssl req -new -x509 -sha256 -days 3650 -key customdeviceca.key -out CustomDeviceCA.crt -config device_ca.cnf -extensions v3_ca
    4. Creare la chiave privata per il certificato di dispositivo:
      openssl ecparam -out customdevice.key -name prime256v1 -genkey
    5. Creare un file di configurazione namens device.cnf (per il contenuto vedere device.cnf).
    6. Creare una richiesta di firma per il certificato di dispositivo:
      openssl req -new -sha256 -key customdevice.key -out customdevice.csr -config device.cnf
    7. Creare il certificato firmato CA:
      openssl x509 -req -sha256 -days 3650 -in customdevice.csr -CA CustomDeviceCA.crt -CAkey customdeviceca.key -out CustomDevice.crt -extfile <(printf "[v3_req]\\nsubjectAltName = @alt_names\\nbasicConstraints = CA:FALSE\\nsubjectKeyIdentifier = hash\\nauthorityKeyIdentifier = keyid\\nkeyUsage = digitalSignature,keyAgreement\\nextendedKeyUsage = serverAuth\\n[alt_names]\\nDNS.1 = *.local") -extensions v3_req
    8. Convertire la chiave nel formato DER:
      openssl ec -inform PEM -in customdevice.key -outform DER -out customdevice_key.der
    9. Convertire il certificato nel formato DER:
      openssl x509 -inform PEM -in CustomDevice.crt -outform DER -out customdevice_crt.der
    10. Creare la chiave privata per il certificato client CA autofirmato:
      openssl ecparam -out customclientca.key -name prime256v1 -genkey
    11. Creare un file di configurazione namens client_ca.cnf (per il contenuto vedere client_ca.cnf).
    12. Creare il certificato client CA autofirmato:
      openssl req -new -x509 -sha256 -days 3650 -key customclientca.key -out CustomClientCA.crt -config client_ca.cnf -extensions v3_ca
    13. Convertire il certificato Client-CA nel formato DER:
      openssl x509 -inform PEM -in CustomClientCA.crt -outform DER -out CustomClientCa_crt.der
    14. Generare la chiave privata per il certificato client:
      openssl ecparam -out customclient.key -name prime256v1 -genkey
    15. Creare un file di configurazione namens client.cnf (per il contenuto vedere client.cnf).
    16. Creare una richiesta di firma per il certificato client:
      openssl req -new -sha256 -key customclient.key -out customclient.csr -config client.cnf
    17. Creare il certificato client firmato CA:
      openssl x509 -req -sha256 -days 3650 -in customclient.csr -CA CustomClientCA.crt -CAkey customclientca.key -out CustomClient.crt -extfile <(printf "[v3_req]\\nbasicConstraints = CA:FALSE\\nsubjectKeyIdentifier = hash\\nauthorityKeyIdentifier = keyid\\nkeyUsage = digitalSignature\\nextendedKeyUsage = clientAuth") -extensions v3_req
    18. Convertire il certificato client e la chiave in un file PFX:
      openssl pkcs12 -export -inkey customclient.key -in CustomClient.crt -out CustomClient.pfx
    19. NOTA

      notice

      Password di esportazione

      Il file PFX contiene la chiave privata riservata customclient.key. OpenSSL richiede quindi una password al momento di creare il file PFX. È necessario immettere la password, quando si vogliono aggiungere in Windows i certificati con il file PFX.