Piszki Lab

Analiza przypadku w języku przodków…

Certyfikaty SSL w Horizon Workspace

| 0 comments

Temat rzeka, kto zaczynał od wersji 1.0 (Beta) ten wie, zła wiadomość jest taka, że nic się nie zmieniło, ciągle jest to męczarnia.

Próba załadowania poprawnej pary certyfikat/klucz w “configurator-va” (Failed to initialize Java keystore handling):

ssl_error

Na szczęście, w dawnych czasach, gdy testowaliśmy betę Horizona, dostaliśmy kilka, nieoficjalnych dokumentów pdf (jak tylko je odszukam to podlinkuję w tym wpisie), opisujących jak sobie radzić z różnymi problemami. Między innymi, był tam opis, jak automatycznie wygenerować i rozesłać certyfikaty na wszystkie maszyny va, wchodzące w skład vApp Horizon! Latka minęły, mamy wersję Horizon Workspace 1.5.1 a magiczny skrypt nadal istnieje i nadal działa bez problemu! Uśmiech

Aby przeprowadzić całą operację, będziemy potrzebowali certyfikatu i klucza prywatnego naszego CA. Jeśli jest to Microsoft Active Directory Certificate Services, to będziemy musieli (jeśli restrykcje na to pozwalają) wyeksportować nasz klucz główny i przekonwertować go do formatu tekstowego. Następnie musimy się zalogować jako root do maszyny configurator-va, proponuję od razu dodać sobie zwykłego użytkownika (w grupie wheel) i zalogować się przez putty, będzie o wiele łatwiej.

ughorizoncf:/usr/local/horizon/conf # ls
configurator-va_cert.pem  data-va_cert.pem     gateway-va_key.pem                     

license-horizon-workspace-10-e1-201206.txt  root_ca_key.pem
configurator-va_key.pem   data-va_key.pem      horizon-configurator.properties        

logback.xml                                 service-va_cert.pem
connector-va_cert.pem     firewall-rules       license-ham-10-e1-201201.txt           

openssl.cfg                                 service-va_key.pem
connector-va_key.pem      gateway-va_cert.pem  license-horizon-suite-10-e1-201206.txt 

root_ca.pem                                 ssl
ughorizoncf:/usr/local/horizon/conf # rm *va*

Jak wyżej, kasujemy wszystkie pary va, pod pliki root* podstawiamy nasz klucz i certyfikat, następnie uruchamiamy polecenie:

ughorizoncf:/usr/local/horizon/lib/menu/secure # ./wizardssl.hzn
Generate root CA
pushing SSL certs to service-va ughorizonse.pulab.local
Enter pass phrase for /usr/local/horizon/conf/root_ca_key.pem:
APPLICATION_MANAGER ca.pem cert.pem key.pem
Certificate was added to keystore
Existing entry alias tcserver exists, overwrite? [no]:  Certificate already exists in system-wide CA

keystore under alias <horizoninternal>
Do you still want to add it to your own keystore? [no]:  Certificate was added to keystore
pushing SSL certs to connector-va ughorizoncn.pulab.local
Enter pass phrase for /usr/local/horizon/conf/root_ca_key.pem:
CONNECTOR ca.pem cert.pem key.pem
Certificate was added to keystore
Existing entry alias tcserver exists, overwrite? [no]:  pushing SSL certs to gateway-va ughorizong1.pulab.local
Enter pass phrase for /usr/local/horizon/conf/root_ca_key.pem:
GATEWAY ca.pem cert.pem key.pem
Verifying certs
cert.pem: OK
Installing certs
Shutting down nginx ..done
Starting nginx ..done
pushing SSL certs to configurator-va ughorizoncf.pulab.local
Enter pass phrase for /usr/local/horizon/conf/root_ca_key.pem:
CONFIGURATOR /usr/local/horizon/conf/root_ca.pem /usr/local/horizon/conf/configurator-va_cert.pem

/usr/local/horizon/conf/configurator-va_key.pem
Certificate was added to keystore
Existing entry alias tcserver exists, overwrite? [no]:  pushing SSL certs to data-va ughorizond.pulab.local
Enter pass phrase for /usr/local/horizon/conf/root_ca_key.pem:
DATA ca.pem cert.pem key.pem
Certificate was added to keystore
** Verifying cert.pem against key.pem
Certificate (cert.pem) and private key (key.pem) match.
Valid Certificate: cert.pem: OK
** Verifying cert.pem against /opt/zimbra/ssl/zimbra/commercial/commercial.key
Certificate (cert.pem) and private key (/opt/zimbra/ssl/zimbra/commercial/commercial.key) match.
Valid Certificate: cert.pem: OK
** Copying cert.pem to /opt/zimbra/ssl/zimbra/commercial/commercial.crt
** Appending ca chain ca.pem to /opt/zimbra/ssl/zimbra/commercial/commercial.crt
** Importing certificate /opt/zimbra/ssl/zimbra/commercial/commercial_ca.crt to CACERTS as zcs-user-commercial_ca…done.
** NOTE: mailboxd must be restarted in order to use the imported certificate.
** Saving server config key hzndataSSLCertificate…done.
** Saving server config key hzndataSSLPrivateKey…done.
** Installing slapd certificate and key…done.
** Creating pkcs12 file /opt/zimbra/ssl/zimbra/jetty.pkcs12…done.
** Creating keystore file /opt/zimbra/mailboxd/etc/keystore…done.
** Installing CA to /opt/zimbra/conf/ca…done.
Host ughorizond.pulab.local
Stopping vmware-ha…Done.
Stopping zmconfigd…Done.
Stopping stats…Done.
Stopping spell…Done.
Stopping mailbox…Done.
Stopping convertd…Done.
Stopping ldap…Done.
Host ughorizond.pulab.local
Starting ldap…Done.
Starting zmconfigd…Done.
Starting convertd…Done.
Starting mailbox…Done.
Starting stats…Done.
ughorizoncf:/usr/local/horizon/lib/menu/secure #
Broadcast message from root (Wed Nov 27 12:30:54 2013):

The system is going down for system halt NOW!

Skrypt ten wygeneruje właściwe pary certyfikat/klucz i roześle na odpowiednie maszyny. Po wszystkim wykonujemy polecenie restartu na całym vApp Horizon-Workspace (koniecznie ale to koniecznie, bez tego jesteśmy “w pół kroku”).

Po restarcie mamy całe środowisko skonfigurowane na certyfikatach SSL z naszego lokalnego CA. Działa to wszystko bardzo dobrze Uśmiech

EDIT 2014.03.20:

Potwierdzam, że cała procedura działa w Horizon Workspace 1.8 !

Oceń ten artykuł:
[Total: 0 Average: 0]

Dodaj komentarz

Required fields are marked *.