Italian GCE & https come fare

juvanum

Active Member
Licensed User
Longtime User
Riporto qui una conversazione avuta con @magi6162 che ringrazio.
Ritengo che possa essere utile anche ad altri utenti che come me e @magi6162 vogliano cimentarsi nell'integrazione di SSL su un server virtuale di Google (GCE)


INIZIO CONVERSAZIONE
Messaggio 1

Ho visto che stai provando ad attivare un server virtuale su GCE utilizzando SSL

Sei riuscito nel tuo intento?... te lo chiedo perchè anch'io sto provando a migrare su GCE la mia webapp/ABM attualmente installata su un server AWS ( www.mardomcat.it ).

Non ho avuto difficoltà ad attivare il server GCE ma mi sono arenato nell'utilizzo di SSL. Ho visto che hai fatto un mini tutorial ma faccio fatica a seguirlo visto anche la mia scarsa conoscenza dell'inglese.. potresti darmi qualche dritta?



Risposta di @magi6162 al Messaggio 1

Il mini tutorial si riferisce al certificato "start" che rilascia 1&1, non so per altri.
nel mini tutorial:
non c'è modo di tradurlo sono istruzioni per l'istanza linux (ubuntu 17.10) che ho creato.
1&1 rilascia i certificati con il nome del dominio nel nome del file (qui: mysite.it)

1. cat mysite.it_ssl_certificate_INTERMEDIATE.cer www.mysite.it_ssl_certificate.cer > www.mysite.it_newtotale.txt
2. openssl pkcs12 -inkey www.mysite.it_private_key.key -in www.mysite.it_newtotale.txt -export -out www.mysite.it_new.pkcs12
3. keytool -importkeystore -srckeystore www.mysite.it_new.pkcs12 -srcstoretype PKCS12 -destkeystore mysite.it_new.keystore

Quando lanci il 2. ti chiede di inserire una password e di ripeterla, sarà quella che poi userai nella sub ConfigureSSL (che scriverai nel main della tua app)
Quando lanci 3. ti chiede un'altra password, ripeterla e poi inserire la password che hai usato al 2.

Queste password le metti come ho specificato:

B4X:
ssl.KeyStorePassword = "123456789"  (password di esempio)
    ssl.KeyManagerPassword = "987654321"         (password di esempio)

Per le password ti consiglio di usare uno dei generatori di password online.
Non so che istanza hai creato su GCE tuttavia accertati che sia aperta la porta 443 (dovrai usare "sudo" per lanciare la tua app sul server)
Se usi un istanza windows non ho idea di cosa usare.
 

juvanum

Active Member
Licensed User
Longtime User
Io "credo" di aver installato Debian GNU/linux (vedi immagine sotto).
connect1.JPG

Io la mia app sul server la lancio con il comando:
nohup java -jar /home/mardommagazzino/alfa.jar &
in modo tale che quando chiudo la finestra-client attivata dal browser, la webapp rimanga attiva.
Mi sembri che la cosa funzioni... mi sono solo arenato con SSL
 

juvanum

Active Member
Licensed User
Longtime User
@magi6162 Quindi se ho ben capito bisogna comunicare a 1&1 il nome del dominio sul quale si vuole attivare il certificato. Giusto?
 

juvanum

Active Member
Licensed User
Longtime User
Io ho un dominio registrato presso di loro, non so se danno certificati per domini registrati presso altri.

Anch'io pensavo di acquistare un dominio da loro e di richiedergli contestualmente il certificato.


per usare la porta 443 (SSL) quindi sotto la 1000 devi usare:
sudo nohup java -jar /home/mardommagazzino/alfa.jar &

ma prima devi avere sistemato i certificati...


Ok vado a fare la spesa di sito e certificati.. ;)
Per il momento grazie :)
 

juvanum

Active Member
Licensed User
Longtime User
Io ho un dominio registrato presso di loro, non so se danno certificati per domini registrati presso altri.
Si hai una istanza con Debian 9.2 (se non ho visto male)


Immagino che la prima cosa da fare, ancor prima di mettersi a smanettare con i certificati, sia di associare l'indirizzo IP STATICO del vps fornito da GCE al dominio registrato con il provider 1&1 (vedi immagine allegata)
C'e' solo da inserire l'indirizzo ip.... Giusto?

dominioip.JPG
 

juvanum

Active Member
Licensed User
Longtime User
Si, ottimo, poi se non ricordo male c'è una voce certificati e da lì scarichi le tre-quatto voci (quelle utili dovrebbero essere 3: i due certificati e la chiave.

La chiave privata l'ho già scaricata.

I due certificati da scaricare dovrebbero essere quelli che ho cerchiato in rosso nell'immagine?
grazie in anticipo ;-)
scarica certificato x.jpg
 

juvanum

Active Member
Licensed User
Longtime User
sì, perfetto;)
Ora non ti resta che eseguire attentamente quanto già indicato.
Se non hai installato openssl e keytool(questo dovrebbe essere già presente se hai installato java sul server) devi installarli.


ok.. spero che OPENSSL e KEYTOOL siano già installati.

Riporto qui sotto la tua procedura ripreso dal tuo tutorial tanto per essere sicuro:
Dovrebbe essere sufficiente sostituire "mysite.it" con il nome del mio sito.


Ho un solo dubbio:
nella terza riga, parametro in verde (destkeystore), non c'è il "www". E' una svista oppure è giusto ometterlo?

1. cat mysite.it_ssl_certificate_INTERMEDIATE.cer www.mysite.it_ssl_certificate.cer > www.mysite.it_newtotale.txt
2. openssl pkcs12 -inkey www.mysite.it_private_key.key -in www.mysite.it_newtotale.txt -export -out www.mysite.it_new.pkcs12
3. keytool -importkeystore -srckeystore www.mysite.it_new.pkcs12 -srcstoretype PKCS12 -destkeystore mysite.it_new.keystore
 
Last edited:

juvanum

Active Member
Licensed User
Longtime User
il "www" è presente nei file di "1&1", (almeno quelli che ho scaricato io).
la n. 3. crea una chiave che dovrai usare in: (puoi dargli il nome che vuoi, ma credo che ".keystore" debba restare)
B4X:
ssl.SetKeyStorePath(File.DirApp & "/cert", "mysite.it.keystore") 'path to keystore file

spero di esserti stato di aiuto.;)
Fammi sapere come andrà.


Sei stato utilissimo. Domani provo ad attivare il tutto e ti faccio sapere.
Per il momento grazie in anticipo
 

juvanum

Active Member
Licensed User
Longtime User
il "www" è presente nei file di "1&1", (almeno quelli che ho scaricato io).
la n. 3. crea una chiave che dovrai usare in: (puoi dargli il nome che vuoi, ma credo che ".keystore" debba restare)
B4X:
ssl.SetKeyStorePath(File.DirApp & "/cert", "mysite.it.keystore") 'path to keystore file

spero di esserti stato di aiuto.;)
Fammi sapere come andrà.

Ciao purtroppo mi dà un errore :(
Ho eseguito i seguenti passi:

-ho creato la directory "cert" sul mio server,

-ho copiato dentro la directory "cert" i 3 files scaricati da 1&1:
mysite.it_ssl_certificate_INTERMEDIATE.cer
www.mysite.it_ssl_certificate.cer
www.mysite.it_private_key.key

-da dentro la directory "cert" ho lanciato il comando:
cat mysite.it_ssl_certificate_INTERMEDIATE.cer www.mysite.it_ssl_certificate.cer > www.mysite.it_newtotale.txt

-poi ho lanciato il secondo comando:
openssl pkcs12 -inkey www.mysite.it_private_key.key -in www.mysite.it_newtotale.txt -export -out www.mysite.it_new.pkcs12

che mi dà come risposta il seguente messaggio:
B4X:
unable to load certificates
140365931894016:error:0906D066:PEM routines:PEM_read_bio:bad end line:../crypto/pem/pem_lib.c:799:

Per caso c'era da fare qualcos'altro prima? :confused:
 

juvanum

Active Member
Licensed User
Longtime User
il file risultante dal primo comando:
deve essere "perfezionato"
Lo devi aprire con nano (o altro editor) e devi verificare che siano uno di seguito all'altro
Quindi:
-----BEGIN CERTIFICATE-----
.......
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
......
-----END CERTIFICATE-----

se non lo sono modifica il file (come mostrato) e salvalo.

grazie mille.. vado a controllare
 

juvanum

Active Member
Licensed User
Longtime User
il file risultante dal primo comando:
deve essere "perfezionato"
Lo devi aprire con nano (o altro editor) e devi verificare che siano uno di seguito all'altro
Quindi:
-----BEGIN CERTIFICATE-----
.......
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
......
-----END CERTIFICATE-----

se non lo sono modifica il file (come mostrato) e salvalo.


Ho eliminato la directory "cert", l'ho ricreata e fatto l'upload dei 3 files.
Ho unito i due files con il comando:
cat mysite.it_ssl_certificate_INTERMEDIATE.cer www.mysite.it_ssl_certificate.cer > www.mysite.it_newtotale.txt

l'ho editato con il comando "nano" ed inserito un ENTER tra la fine del primo file e l'inizio del secondo
il risultato è l'immagine allegata.
Niente da fare dà sempre lo stesso errore ovvero ....BAD END LINE ...
Cattura.JPG

Qualche suggerimento..?:(
 

juvanum

Active Member
Licensed User
Longtime User
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----

deve essere così tu hai questo: (che non va bene)
-----END CERTIFICATE----
------BEGIN CERTIFICATE-----
Questo problema è risolto... grazie.
Passo al prox step ;)
 

juvanum

Active Member
Licensed User
Longtime User
ho lanciato il terzo comando:
keytool -importkeystore -srckeystore www.mysite.it_new.pkcs12 -srcstoretype PKCS12 -destkeystore mysite.it_new.keystore

la risposta sembra ok.. almeno spero ;)
Import command completed: 1 entries successfully imported, 0 entries failed or cancelled
Warning:
The JKS keystore uses a proprietary format. It is recommended to migrate to PKCS12 which is an industry standard format using "keytool -importkeystore -srckeystore xxxxxx_new.keystore -destkeystore xxxxxxx_new.keystore -deststoretype pkcs12".

Grazie per l'aiuto :)
 

juvanum

Active Member
Licensed User
Longtime User
@magi6162 mi sa che mi son perso qualche passaggio:
ho provato a testare il mio sito su GLOBALSIGN e la risposta è negativa:

Assessment failed: Unable to connect to the server
it usually happens due to firewall restrictions


le regole del firewall mi sembrano a posto, vedi sotto

Cattura.JPG


Se provo a collegarmi al mio sito con http è tutto normale... se provo con https ovviamente non funziona.

Hai qualche suggerimento su dove indagare?
 

juvanum

Active Member
Licensed User
Longtime User
dallo screenshot vedo che http aperto su 5000, perchè?

Perchè è una reminescenza della mia vecchia app che operava (bene) sulla porta 5000... per http non dovrebbe essere un problema... infatti funzionava.
Ho comunque ripristinato la porta 80 ma GLOBALSIGN continua a dare lo stesso errore.

Credo che il problema sia nel warning dopo il lancio del punto 3 (vedi post 23)
Warning:
The JKS keystore uses a proprietary format. It is recommended to migrate to PKCS12 which is an industry standard format using "keytool -importkeystore -srckeystore xxxxxx_new.keystore -destkeystore xxxxxxx_new.keystore -deststoretype pkcs12".



Credo che debba effettuare la migrazione come suggerisce il warning.
Provo ad indagare su questo. comunque grazie ;)
 

juvanum

Active Member
Licensed User
Longtime User
il warning appare comunque, appariva anche a me, quindi non è quello il problema.

toglimi un dubbio: come e quando effettui il lancio di:
java -Xbootclasspath/p:alpn-boot-8.1.5.v20150921.jar -jar miaapp.jar ?
 
Top