{"id":311,"date":"2012-10-22T19:52:31","date_gmt":"2012-10-22T17:52:31","guid":{"rendered":"http:\/\/blog.techmedia.pl\/?p=311"},"modified":"2014-11-19T23:45:43","modified_gmt":"2014-11-19T22:45:43","slug":"apache2-prywatny-centyfikat-ssl","status":"publish","type":"post","link":"https:\/\/www.techmedia.pl\/blog\/apache2-prywatny-centyfikat-ssl\/","title":{"rendered":"Apache2 prywatny centyfikat SSL"},"content":{"rendered":"<p>Podczas przesy\u0142ania danych pomi\u0119dzy przegl\u0105dark\u0105 klienta, a serwerem www czasem zachodzi potrzeba zaszyfrowania danych. Takie dane jak has\u0142a, dane osobowe czy inne istotne informacje bezwzgl\u0119dnie nale\u017cy szyfrowa\u0107, gdy\u017c bez szyfrowania mog\u0105 dosta\u0107 si\u0119 w niepowo\u0142ane r\u0119ce.<\/p>\n<p>Do szyfrowania danych potrzebny jest certyfikat. Mo\u017cna go wygenerowa\u0107 i wys\u0142a\u0107 do instytucji certyfikuj\u0105cego w celu jego podpisania lub mo\u017cemy do wygenerowa\u0107 i podpisa\u0107 sami (co i kiedy jest lepsze dla nas, w innym artykule).<\/p>\n<p>Na pocz\u0105tku instalujemy potrzebne pakiety:<!--more--><\/p>\n<pre><code>root@server:# <strong>apt-get install openssl ssl-cert<\/strong><\/code><\/pre>\n<p>Tworzymy w katalogu \/etc\/apache\/ podkatalog <em>ssl<\/em>, a w nim kolejne podkatalogi <em>certs<\/em> (katalog do przetrzymywania certyfikat\u00f3w) i <em>private<\/em> (katalog do przetrzymywania kluczy). W celu utworzenia i podpisania certyfikatu SSL w\u0142asnym kluczem, w katalogu <em>\/etc\/apach2\/ssl<\/em> wydajemy poni\u017csze polecenie:<\/p>\n<pre>root@server:# <strong>openssl req -x509 -nodes -days 1864 -newkey rsa:2048 -keyout .\/private\/domena.pl.key -out .\/certs\/domena.pl.pem<\/strong><\/pre>\n<p>zostaniemy zapytani o miasto, kraj, nazw\u0119 firmy, nazw\u0119 domeny, itp.<\/p>\n<p>Country Name (2 letter code) [AU]:<strong>PL<\/strong><br \/>\nState or Province Name (full name) [Some-State]:<strong>Wojewodztwo<\/strong><br \/>\nLocality Name (eg, city) []:<strong>Miejscowosc<\/strong><br \/>\nOrganization Name (eg, company) [Internet Widgits Pty Ltd]:<strong>Nazwa firmy<\/strong><br \/>\nOrganizational Unit Name (eg, section) []:<strong>Dzia\u0142 firmy<\/strong><br \/>\nCommon Name (e.g. server FQDN or YOUR name) []:<strong>www.domena.pl<\/strong><br \/>\nEmail Address []:<strong>admin@domena.pl<\/strong><br \/>\nA challenge password []:<br \/>\nAn optional company name []:<\/p>\n<p>Na pytania mo\u017cemy nie odpowiada\u0107 naciskaj\u0105c <em>Enter<\/em> lub mo\u017cemy wpisa\u0107 odpowiednie dane, kt\u00f3re p\u00f3\u017aniej b\u0119d\u0105 zawarte w certyfikacie.<\/p>\n<p>Dla bezpiecze\u0144stwa nale\u017cy pami\u0119ta\u0107, aby nada\u0107 prawa odczytu do obydwu plik\u00f3w tylko dla roota.<\/p>\n<pre><code>chmod 600 \/etc\/apache2\/ssl\/private\/domena.pl.key <\/code><\/pre>\n<pre><code>chmod 600 \/etc\/apache2\/ssl\/certs\/domena.pl.pem<\/code><\/pre>\n<p>Poni\u017cszym poleceniem mo\u017cna sprawdzi\u0107 poprawno\u015b\u0107<\/p>\n<p>certyfikatu:<\/p>\n<pre>openssl x509 -noout -text -in \/etc\/apache2\/ssl\/certs\/domena.pl.pem<\/pre>\n<p>i klucza:<\/p>\n<pre>openssl rsa -noout -text -in \/etc\/apache2\/ssl\/private\/domena.pl.key<\/pre>\n<p>Nale\u017cy pami\u0119ta\u0107 o dodaniu odpowiednich modu\u0142\u00f3w do apacha w katalogu <em>\/etc\/apache2\/mods-enables<\/em> <em>ssl.conf<\/em> i <em>ssl.load<\/em>. W przypadku wybrania innych port\u00f3w ni\u017c domy\u015blny port ssl 443 nale\u017cy w pliku\u00a0<em>\/etc\/apache2\/ports.conf<\/em> doda\u0107 odpowiednie wpisy np.\u00a0 <em>Listen 444<\/em> dla portu 444.<\/p>\n<p>Na koniec nale\u017cy prze\u0142adowa\u0107 konfiguracj\u0119 apacha:<\/p>\n<pre>root@server:# <strong>\/etc\/init.d\/apache2 reload<\/strong><\/pre>\n<p>lub zrestartowa\u0107 apacha:<\/p>\n<pre>root@server:# <strong>\/etc\/init.d\/apache2 restart<\/strong><\/pre>\n<p>Po wpisaniu w przegl\u0105dark\u0119 <em>https:\/\/www.domena.pl<\/em> po\u0142\u0105czenie z serwerem b\u0119dzie szyfrowane (oczywi\u015bcie nale\u017cy zadba\u0107 jeszcze o odpowiedni\u0105 konfiguracj\u0119 apacha).<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Podczas przesy\u0142ania danych pomi\u0119dzy przegl\u0105dark\u0105 klienta, a serwerem www czasem zachodzi potrzeba zaszyfrowania danych. Takie dane jak has\u0142a, dane osobowe czy inne istotne informacje bezwzgl\u0119dnie nale\u017cy szyfrowa\u0107, gdy\u017c bez szyfrowania mog\u0105 dosta\u0107 si\u0119 w niepowo\u0142ane r\u0119ce. Do szyfrowania danych potrzebny jest certyfikat. Mo\u017cna go wygenerowa\u0107 i wys\u0142a\u0107 do instytucji certyfikuj\u0105cego w celu jego podpisania lub [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[87,4,130],"tags":[49,52,53,50],"yst_prominent_words":[],"_links":{"self":[{"href":"https:\/\/www.techmedia.pl\/blog\/wp-json\/wp\/v2\/posts\/311"}],"collection":[{"href":"https:\/\/www.techmedia.pl\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.techmedia.pl\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.techmedia.pl\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.techmedia.pl\/blog\/wp-json\/wp\/v2\/comments?post=311"}],"version-history":[{"count":19,"href":"https:\/\/www.techmedia.pl\/blog\/wp-json\/wp\/v2\/posts\/311\/revisions"}],"predecessor-version":[{"id":1519,"href":"https:\/\/www.techmedia.pl\/blog\/wp-json\/wp\/v2\/posts\/311\/revisions\/1519"}],"wp:attachment":[{"href":"https:\/\/www.techmedia.pl\/blog\/wp-json\/wp\/v2\/media?parent=311"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.techmedia.pl\/blog\/wp-json\/wp\/v2\/categories?post=311"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.techmedia.pl\/blog\/wp-json\/wp\/v2\/tags?post=311"},{"taxonomy":"yst_prominent_words","embeddable":true,"href":"https:\/\/www.techmedia.pl\/blog\/wp-json\/wp\/v2\/yst_prominent_words?post=311"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}