Najpierw musisz wygenerować klucz z hasłem, CSR (Certificate Signing request), podem podpisać generując cert, potem zdjąc hasło z klucza….. wait what ? WTF self-signed cert nie zapewnia i tak żadnego bezpieczeństwa (o tym później).

openssl genrsa 1024 > host.key
openssl req -new -x509 -nodes -sha1 -days 365 -key host.key >host.crt

i DONE, żadnego pieprzenia się ze zdejmowaniem kluczy, hasłami itd.
A teraz o bezpieczeństwie self-signed cert

W powszechnym mniemaniu self-signed cert ma  być do testów przed wrzuceniem prawdziwego certu (right way), lub do zabezpieczenia danych gdy puszczane są przez niebezpieczne połączenia (np. kafejkowe wifi) (wrong way). Why it’s wrong ?

Pomyślmy. Gdy jesteśmy wpięci kablem do netu to raczej nikt nie podejrzy naszych danych (musiałby mieć dostęp do sieci operatora albo naszego dostawcy netu).

Gdy natomiast jesteśmy wpięci przez publiczne wifi, teoretycznie możemy być łatwo podsłuchani.

Tyle że gdy ktoś może nas podsłuchać to w większości wypadków może też przepuścić nasze dane przez co chce. A że cert jest self-signed to jest to banalne ;]. Więc nasz śmieszny cercik nie daje prawie nic (może jakiś script-kiddie nie będzie potrafił tego zrobić ale z liczbą dostępnych narzędzi obecnie to wątpię).

Proper way to do it:

  • Zrób cert
  • Dodaj go do przeglądarki/whatever (i rozdaj współpracownikom)
  • I tym certem podpisuj swoje certy testowe – wtedy póki ktoś nie dorwie Twojego klucza publicznego powinieneś być w miarę safe – i wtedy ma sens robienie tych cyrków  z generowaniem CSR ;]

Jeżeli dalej myslisz że self-signed cert = security ur damn WRONG.

Related Posts: