Създаване на самоподписан сертификат с OpenSSL

Това е едно от нещата, които не правя често и за това реших, че е добра идея да си опиша последователността от стъпки тук. Целта е да си създам собствено CA (Certification Authority) и след това с него да си подпиша csr (certificate signing request) файла, резултата ще е сертификат, който ще използвам за криптиране на връзката през уеб. CA сертификата ще се инсталира на браузъра на клиента и по този начин, ще валидира създадения по-рано сертификат. От написаното до тук, предполагам няма да стане много ясно, кое как работи. Сигурен съм обаче, че връзките по-долу ще послужат, за да се придобие по-ясна представа какво и защо се прави:

Straightforward Explanation of SSL and HTTPS
How SSL Works
Wikipedia Transport Layer Security

Ето и няколко линка, даващи информация за това как сами да си направим самоподписан сертификат посредством OpenSSL, описаното по-долу копира описаното в тези два сайта:

Creating Certificate Authorities and self-signed SSL certificates
OpenSSL

За да различавам ключовете от сертификатите, съм създал 2 директории в /etc/ssl – certs и private. В certs съхранявам всички сертификати, а в private ключовете. Редно е да се спомене, че достъп до файловете в private трябва да има само root потребителят и само той, би трябвало да може да ги чете. Ето и последователността от стъпки, за създаване на самоподписан сертификат:

1. Създаване на CA

1.1 Създаване на CA key
openssl genrsa -out private/CA.pem 4096

1.2 Създаване на сертификат, подписан с вече създадения CA key
openssl req -new -x509 -days 3650 -key private/CA.pem -out certs/CA.crt

С days параметъра, казваме за колко време да е валиден този сертификат. След изпълняването на командата, ще трябва да въведем информация за сертификата, което включва държава, област, град, име на компанията, отдел и домейн за CA сертификата, който обаче трябва да е различен от домейна, за който правим сертификат и който ще подпишем по-късно с този CA.

2. Създаване на certificate signing request

2.1 Създаване на private key за сървъра
openssl genrsa -out private/domain.pem 4096

2.2 Използваме вече направения pravete key, за да създадем certificate signing request
openssl req -new -key private/domain.pem -out private/domain.csr

Тук също както при създаването на сертификата, ще трябва да въведем държава, област, град, име на компанията, отдел и домейн.

3. Подписване на certificate signing request-а, използвайки вече създадения CA
openssl x509 -req -days 3650 -in private/domain.csr -CA certs/CA.crt -CAkey private/CA.pem -set_serial 2008113001 -out certs/domain.pem

Сподели:
Edno23 Favit Svejo Twitter Facebook Google Buzz Delicious Google Bookmarks Digg
Публикувано в *BSD, Linux. Постоянна връзка.

Вашият коментар

Вашият email адрес няма да бъде публикуван Задължителните полета са отбелязани с *

*

Можете да използвате тези HTML тагове и атрибути: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>