Pro kotrolu validace SSL certifikátů v Zabbixu jsem se rozhodl použít návod na wiki.zabbix, kde je odkaz na podrobnější autorův web.
Vše by fungovalo, až na malou drobnost a tou je následující příkaz, který je součástí scriptu, porovnávající datum z certifikátu s aktuálním časem. BSD date a GNU date je jiný a parametry jsou jine.
BSD date
date '+%s' --date "Dec 29 23:59:59 2013 GMT"
date: illegal time format
usage: date [-jnu] [-d dst] [-r seconds] [-t west] [-v[+|-]val[ymwdHMS]] ...
[-f fmt date | [[[[[cc]yy]mm]dd]HH]MM[.ss]] [+format]
Script zext_ssl_check.sh, který používá OpenSSL (openssl s_client) pro zjištění data expirace certifikátu jsem si postupně prošel až jsem narazil na příkaz date. Abych FreeBSD naučil GNU date - gdate, musel jsem doinstalovat následující balíček coreutils.
coreutils-8.20_2 The Free Software Foundation's core utilities
Pak už příkaz dělal co má.
GNU date
gdate '+%s' --date "Dec 29 23:59:59 2013 GMT"
1388361599
Pak už příkaz dělal co má. Na stránce autora jsou dvě verze scriptu pro kontrolu SSL certifikátů. Jedna je z webu a druha je z svn.
Verze s svn vraci jen počet dní do expirace.
./zext_ssl_check.sh edu.mudk.cz 443
290
Verze z webu ma širší použití.
./zext_ssl_cert.sh
usage: ./zext_ssl_cert.sh [-i|-d] hostname port
-i Show Issuer
-d Show valid days remaining
./zext_ssl_cert.sh -i edu.mudk.cz 443
Thawte DV SSL CA
./zext_ssl_cert.sh -d edu.mudk.cz 443
290
Ke každému scriptu je extra Template. Použil jsem verzi z svn, ale musel jsem Template modifikovat pro Zabbix 2.0.5. Konkrétně mi External_check nefungoval.
Mnou upravená definice klíče.
zext_ssl_check.sh[{HOST.CONN},{$SSL_PORT}]
V Template bylo. Zkrátka musíme vědět co a jak je kde třeba :-)
zext_ssl_cert.sh[{$SSL_PORT}]
s tím, že varianta
zext_ssl_check.sh[{HOST.CONN}, {$SSL_PORT}]
a
zext_ssl_check.sh[{HOST.CONN} {$SSL_PORT}]
mi nefunovala v Zabbixu 2.0.5.
Zobrazují se příspěvky se štítkemOpenSSL. Zobrazit všechny příspěvky
Zobrazují se příspěvky se štítkemOpenSSL. Zobrazit všechny příspěvky
čtvrtek 14. března 2013
pondělí 21. listopadu 2011
OpenSSL library error follows - values mismatch
Řešil jsem standartní výměnu SSL certifikátu u webserveru Apache. Po domluvě s osobou, co certifikační řízení řešil u CA Thawte jsem mu vytvořil nové CSR dle zvyklostí.
openssl genrsa -des3 -out www.domena.cz.key 2048
openssl req -new -key www.domena.cz.key -out www.domena.cz.csr
openssl rsa -in www.domena.cz.key -out www.domena.cz.key-decrypt
Posléze jsem certifikáty přenesl na webserver a restartoval jej a ejhle, Apache nenaběhl s hláškou:
[Mon Nov 21 12:36:16 2011] [error] mod_ssl: Init: (www.domena.cz:443) Unable to configure RSA server private key (OpenSSL library error follows)
[Mon Nov 21 12:36:16 2011] [error] OpenSSL: error:0B080074:x509 certificate routines:X509_check_private_key:key values mismatch
Je vhodné vždy prověřit, zda je modulus stejny u klíče (key), certifikátu (crt) a požadavku (csr)!!!
openssl x509 -noout -text -in www.domena.cz.crt -modulus
openssl rsa -noout -text -in www.domena.cz.key -modulus
openssl req -noout -text -in www.domena.cz.csr -modulus
Muj problem byl v tom, že mi pán zaslal jiný cert, než bylo domluveno :-(
openssl genrsa -des3 -out www.domena.cz.key 2048
openssl req -new -key www.domena.cz.key -out www.domena.cz.csr
openssl rsa -in www.domena.cz.key -out www.domena.cz.key-decrypt
Posléze jsem certifikáty přenesl na webserver a restartoval jej a ejhle, Apache nenaběhl s hláškou:
[Mon Nov 21 12:36:16 2011] [error] mod_ssl: Init: (www.domena.cz:443) Unable to configure RSA server private key (OpenSSL library error follows)
[Mon Nov 21 12:36:16 2011] [error] OpenSSL: error:0B080074:x509 certificate routines:X509_check_private_key:key values mismatch
Je vhodné vždy prověřit, zda je modulus stejny u klíče (key), certifikátu (crt) a požadavku (csr)!!!
openssl x509 -noout -text -in www.domena.cz.crt -modulus
openssl rsa -noout -text -in www.domena.cz.key -modulus
openssl req -noout -text -in www.domena.cz.csr -modulus
Muj problem byl v tom, že mi pán zaslal jiný cert, než bylo domluveno :-(
pondělí 24. října 2011
BEAST attack on TLS
Již dříve jsem si sem poznamenával něco o SSL Tunningu na serverech, jako reakce na clánek na root.cz. Nově jsem na SSL Labs narazil na BEAST attack.
Zde je doporučené nastaveni OpenSSL - mod_ssl. Ukázkové video o útoku.
SSLProtocol -all +SSLv3 +TLSv1
SSLCipherSuite RC4-SHA:ALL:!NULL:!aNULL:!eNULL:!ADH:!LOW:!EXP:!MD5
SSLHonorCipherOrder On
Zde je doporučené nastaveni OpenSSL - mod_ssl. Ukázkové video o útoku.
SSLProtocol -all +SSLv3 +TLSv1
SSLCipherSuite RC4-SHA:ALL:!NULL:!aNULL:!eNULL:!ADH:!LOW:!EXP:!MD5
SSLHonorCipherOrder On
středa 21. července 2010
SSL Tunning

Po přečtení článku na rootu jsem musel přenastavit často používané defaultní nastaveni SSL u několika webserveru s Apache. Defaultní nastavení je ve prospěch mnoha starších browseru. Ale bezpečnosti nenní nikdy dost a zombie sw má prostě smůlu. Ve článku je zmíněn velmi povedený online nástroj na proveření konfigurace SSL (HTTPS).
https://www.ssllabs.com/ssldb/index.html
Drobným doporučením pro konfiguraci Apache je. Konfiguraci SSL hodně ovlivňují tyto dvě direktivy SSLCipherSuite a SSLProtocol
SSLCipherSuite ALL:!aNULL:!ADH:!eNULL:!LOW:!EXP:RC4+RSA:+HIGH:-MEDIUM
SSLProtocol -all +SSLv3 +TLSv1
Díky RSA007 za nakopnutí v daném tématu.
úterý 22. června 2010
EV Certifikát od Thawte
Postupy pro jednotlivé instalace pro jednotlivé programy jsou zde na stránce Install SSL certificate.
Návod na instalaci na serveru Apache je zde Install Extended Validation Certificate on Apache
Zajimavostí je, že u Thawte musíme vyplnit stahovací formulář a potvrdit pravidla užití kořenových certifikátů, které stáhneme zde. Což se tuším u VeriSign nemuselo.
Nastavení Apache je již obdobné jako u puvodního příspěvku. Důležité jsou opět direktivy SSLCACertificateFile a SSLPassPhraseDialog.
Kontrolu certifikatu na serveru můžeme proveřit pomoci Browseru, nebo z příkazové řádky, pomocí prikazu. Velmi pekný a ucelený návod na OpenSSL je zde.
openssl s_client -connect www.google.com:443
úterý 5. ledna 2010
Jak na SSL certifikát Secure Site Pro with EV od VeriSign
Řešil sem vytvoření SSL certifikátu a ověření u certifikační autority dále jen CA VerySign. Jednalo se o tento produkt Secure Site Pro with EV. V minulosti jsem měl zkušenosti s CA Thawte a tak jsem nestudoval všechny podrobnosti a to se mi vymstilo.CSR jsem jsem si vytvořil následovně.
openssl req -newkey rsa:2048 -sha1 -nodes -keyout private.key -out public.csr
Protože EV certifikát vyžaduje velikost privátního klíče 2048. Takto vytvořený CSR sice bezproblémově prošel certifikací, ale web server Apache odmítal nastartovat natož nahodit 443 virtual. V logu ssl_engine_log se objevovalo toto.
[error] Init: (www.domena.cz:443) Unable to configure RSA server private key (OpenSSL library error follows)
[error] OpenSSL: error:0B080074:x509 certificate routines:X509_check_private_key:key values mismatch
Po dlouhém hledání a nastudování patřičných návodů k dané chybě, jsem ověřil že modus nesedí (není stejný), což je vyžadováno. Nápomocné jsou tyto příkazy OpenSSL, které načtou informace o klíčí a certifikátu. Další nápověda je zde.
openssl x509 -noout -text -in www.domena.cz.crt-modulus | less
openssl rsa -noout -text -in www.domena.cz.key-modulus | less
Byl jsem tudíž donucen stávající a ověřený klíč Revokovat a vytvořit nové CSR a privátní klíč pomocí doporučených OpenSSL příkazů. Certificate Signing Request (CSR) Generation Instructions - Apache SSL
openssl genrsa -des3 -out www.domena.cz.key 2048
openssl req -new -key www.domena.cz.key -out www.domena.cz.csr
U VeriSign jsem narazil na problém při přepsání klíče.
Revoke and Replace
4) Summary
We are unable to continue with this enrollment for the following reason: eECAS_INSTANT_DN_NOT_MATCH
Dále jsem provedl jen Revoke a manuální přepsání, ale to nikam nevedlo.
2) Summary
We are unable to continue with this enrollment for the following reason:
eECAS_INSTANT_DN_NOT_MATCH
Po kontaktování podpory jsem byl nasměrován na popis chyby. Error: errors.ecas.1 during EV Certificate replacement no a po novém certifikačním požadavku, kde se u platby uvede Order Number na které je vázána již uskutečněná platba.
Pro korektní zprovoznění certifikátu je třeba nakonfigurovat Apache takto. Volba SSLPassPhraseDialog se užije jen v případě, že máme klíč s pass phrase k čemuž nás VeriSign nabádá.
SSLPassPhraseDialog exec:/usr/local/etc/apache22/certi/ssl_pwd.pl
SSLCertificateFile certificates/www.domena.cz.crt
SSLCertificateKeyFile certificates/www.domena.cz.key
SSLCACertificateFile certificates/intermediate.crt
nebo
SSLCertificateChainFile certificates/intermediate.crt
pondělí 19. října 2009
Kdy certifikát expiruje ?
Na tuto otázku je snadná odpověď. V browseru klikneme na zámek u https spojení. Bejvá v browserech v pravo dole. Z okna vlastnosti máme možnost vyčíst informace o certifikátu. Pokud chceme daný udaj zjistit pomocí pžíkazu openssl na příkazové řádce, jednoduchý postup je zde.Manually check the expiration date of an SSL certificate:
1. Retrieve the certificate.
$ echo "" | openssl s_client -connect server:443 > certificate
2. Check the expiration date of the certificate.
$ openssl x509 -in certificate -noout -enddate
notAfter=Nov 11 23:59:59 2010 GMT
Tak zase za rok :-) Orig návod je zde.
úterý 19. května 2009
IBM IHS + SSL na Ubuntu
Zprovoznit na IBM IHS HTTP serveru SSL byl docela oříšek. IHS je Apache2 a na něj jsou nalepené IBM moduly např. mod_ibm_ssl nebo mod_was_ap20_http.
První problém nastal při nahrání mod_ibm_ssl, kdy se do error.logu psala tato háška.
SSL0166E: Failure attempting to load GSK library.
Modul vyžaduje v systému přítomnost aplikace GSK toolkit, která je z dílny IBM a bohužel je jen pro podporované systémy využívající RPM. Řešení pro Ubuntu je následující.
cd /opt/IBM/HTTPServer/GSKitImage/
alien -d gsk7bas-7.0-4.14.i386.rpm
dpkg -i gsk7bas_7.0-5.14_i386.deb (prevedeme rpm na deb)
nutné ještě toto, kvuli zavislostem binárek.
apt-get install libstdc++5
Pomocí WAS admina jsem nechal zkopírovát certifikát. Klikat možno zde:
Webové servery > webserver1 > Globální direktivy
Dále jsem se mořil s hláškou:
SSL0263W: SSL Connection attempted when SSL did not initialize
Popovídaní si s dobrým člověkem na telefonu zabralo :-) (postačlo drobné doporučení)
joe /opt/IBM/HTTPServer/conf/httpd.onf
--~--
SSLEnable
SSLServerCert selfSigned
SSLV2Timeout 100
SSLV3Timeout 1000
SSLCipherSpec 35
...
Listen 443
...
LoadModule ibm_ssl_module modules/mod_ibm_ssl.so
...
KeyFile "/data/IBM/HTTPServer/keys/webserver1.kdb"
--~--
První problém nastal při nahrání mod_ibm_ssl, kdy se do error.logu psala tato háška.
SSL0166E: Failure attempting to load GSK library.
Modul vyžaduje v systému přítomnost aplikace GSK toolkit, která je z dílny IBM a bohužel je jen pro podporované systémy využívající RPM. Řešení pro Ubuntu je následující.
cd /opt/IBM/HTTPServer/GSKitImage/
alien -d gsk7bas-7.0-4.14.i386.rpm
dpkg -i gsk7bas_7.0-5.14_i386.deb (prevedeme rpm na deb)
nutné ještě toto, kvuli zavislostem binárek.
apt-get install libstdc++5
Pomocí WAS admina jsem nechal zkopírovát certifikát. Klikat možno zde:
Webové servery > webserver1 > Globální direktivy
Dále jsem se mořil s hláškou:
SSL0263W: SSL Connection attempted when SSL did not initialize
Popovídaní si s dobrým člověkem na telefonu zabralo :-) (postačlo drobné doporučení)
joe /opt/IBM/HTTPServer/conf/httpd.onf
--~--
SSLEnable
SSLServerCert selfSigned
SSLV2Timeout 100
SSLV3Timeout 1000
SSLCipherSpec 35
...
Listen 443
...
LoadModule ibm_ssl_module modules/mod_ibm_ssl.so
...
KeyFile "/data/IBM/HTTPServer/keys/webserver1.kdb"
--~--
Přihlásit se k odběru:
Příspěvky (Atom)
