Non l'ho mai fatto prima. Ma qui ci sono alcuni suggerimenti suggestivi. Questi punti NON sono passi concreti per farlo funzionare. Dalla documentazione per il nuovo AWS Offerta CloudHSM (non classica):
- Imposta CloudHSM e genera la chiave privata utilizzando l'utilità CLI.
- Installa e configura la libreria CloudSSM OpenSSL.
- Verifica se il motore funziona
openssl engine -t cloudhsm
- Configura Nginx. Dal momento che Nginx 1.7.9, puoi specificare un motore per le chiavi private
The value engine:name:id can be specified instead of the file (1.7.9), which loads a secret key with a specified id from the OpenSSL engine name.
Quindi la tua configurazione di nginx sarebbe simile a questa
ssl_certificate_key cloudhsm:<name>:<keyid>;
Non sono abbastanza sicuro di quale sia il nome o il keyID. Leggerò un po '
e modifica questa risposta se trovo qualcosa.
Nota. Inoltre, per documentazione , potresti dover impostare ssl_engine
in cloudhsm
se si desidera abilitare l'accelerazione SSL (facendo la crittografia in HSM).
ssl_engine cloudhsm;
- di prova.
Posso chiederti perché non vuoi scaricare il tuo SSL sui Load Balancer usando AWS ACM? Questo è il modo più semplice per farlo ed è sicuro se ti fidi di AWS per essere sicuro.
modifica: leggo un po 'e sono più o meno certo che Key Handle
nel linguaggio di CloudHSM - l'identificatore numerico a 6 cifre - è il keyid
qui. Penso anche che user name
sia la parte name
. Quindi la tua configurazione Nginx potrebbe essere:
# something that looks like:
ssl_certificate_key cloudhsm:AWSUser:568900;
edit2: la compilazione Nginx non è necessaria. Dobbiamo solo assicurarci che il motore di openssl sia caricabile. Una volta configurato, questo è ciò che appare quando si verifica:
[root@ip-172-31-14-127 ~]# export n3fips_password=user_cu:Wzs8sukUp7FkVs4xQU
[root@ip-172-31-14-127 ~]# openssl engine -t cloudhsm
(cloudhsm) CloudHSM hardware engine support
SDK Version: 2.03
[ available ]
edit3: buone notizie! Secondo questo post sul forum , Amazon sta lavorando a una documentazione migliore per l'integrazione di Nginx con CloudHSM .
edit4: AWS ha aggiornato la propria documentazione per includere le istruzioni per Apache e Nginx. Mi sembra di aver ragione leggermente! ;) Quindi, apparentemente, si scarica una "chiave privata falsa" e la si usa nella configurazione di Nginx. Il resto delle istruzioni regge bene.
Regardless of which method you choose, you then export a private key
handle from the HSMs and save it to a file. The file doesn't contain
the actual private key. It contains a reference to the handle of the
private key that is stored on the HSMs. The file's contents are known
as a fake PEM format private key. Your web server software uses the
fake PEM format private key file, along with the AWS CloudHSM software
library for OpenSSL, to offload SSL or TLS processing to the HSMs in
your cluster
Documentazione qui: link
Non l'ho ancora provato. Pubblicherò un aggiornamento una volta fatto.