Създай свой собствен ва и да подпише своите сертификати за своите ресурси

В тази статия подробно се описва как да създадете свой собствен CA и следващото поколение от свързани файлове: сертификати, заявки за сертификати, и така нататък. Ние вярваме, че работата в терминал за Linux / Unix машина с OpenSSL.







Забележка е безплатен превод на български език на статията тук (плюс мои неща). Той описва основния "ниско ниво" команди за работа със сертификати (x509, REQ и т.н.)

Повече за цифрови сертификати в други постове:

Сертификационен център (на английски Сертифициращ орган съкращение Калифорния) - това е единственото място за генериране на цифрови сертификати. В крайните клиенти (например, уеб браузъри) има база данни за публичните ключове на различни CA, и те проверяват тях идват, например, сертификати на мястото. Ние сме заинтересовани от сертификати, които се използват в сесиите, които са защитени от SSL / TLS протокол.

Всъщност, целият процес може да бъде разделен на следните стъпки:

  1. генерира частен ключ (високо случайна колекция от байтове);
  2. се генерира на базата на един чифт частен ключ сертификат за CA (публични и частни);
  3. генерира чифт сертификати за домейн подписан създаден в предишната стъпка CA.

Да започнем с частния ключ за генериране на файл (файл ca.key), в процеса на въвеждане на парола (тя си спомня, имаме нужда от него повече, ако искате да създадете ключ, без парола, просто премахнете от аргумента на отбора -des3):

Сега Генериране на двойка и притежава сертификат за CA (вместо 365, можете да заместите всяка друга стойност, това е срокът на годност на сертификати за няколко дни):

Въведете паролата за ключа и след това внимателно да попълните полето за тема (предмет). От тези данни, след това можете да се идентифицират публичния сертификат сред списъка на друг, например. Изходът е ca.crt файла - е публичен сертификат за нашия CA.

Можете да създадете ключ и сертификат в екип, както и в една и съща команда може да включва параметри на обекта:

За съжаление, тази команда генерира невалиден ключ. OpenSSL го разбира правилно, но и други програми, които не могат да го приемат. Ние се реши този с командата (ние просто да чете и записва файла отново):







параметър -subj Съдържанието е извън полезрението / $ KEY = $ СТОЙНОСТ сегменти. $ Където ключът може да предприеме следните стойности:

Така че, ние имаме домейн (например example.com) и искаме да напише SSL сертификат, подписан от новосъздадената за него CA. Сертификатът на браузъра в употреба. Стъпки са приблизително същите, както в случая на Калифорния:

  1. създаване на отделен частен ключ (нужда от нов частен ключ, той не може да използва това, което направихме за ТЗ);
  2. Ние създаваме искането за подписване сертификат, който след това трябва да изпратите CA;
  3. от СО сертификат се генерира въз основа на искане за подписване на сертификат;
  4. инсталирате сертификата, че сървърът.

Така, ключът се генерира (в процеса на въвеждане на парола, за предпочитане различен от паролата се използва за генериране на ключа Калифорния):

Ако не искате да шифровате ключа, тогава пропуснете настройката -des3:

Ето един прост начин за създаване на КСО:

В този процес, трябва да отговорите на няколко въпроса (държава, град, име на домейн, и т.н.), резултатът е КСО-файл, който можете да изпратите CA. Въпреки това, този метод има няколко съществени недостатъци - искане за данни отива в предварително определен модел, който не включва някои важни области, например, subjectAltName (това разширение е да включите няколко DNS-имена в сертификата).

Единственият известен начин да се покаже на мен subjectAltName експанзия - е да се използва собствен конфигурационен файл за OpenSSL. Ето, например, както следва:

Запазете го в OpenSSL-csr.cnf файл и редактиране (трябва да се регистрирате в subjectAltName домейните си, ако сте добър в довереник OpenSSL, е възможно и други опции, за да промените / добавите), а след това изпълнете следната команда тук:

Server.csr получения файл вече е необходимо да се "изпрати» CA, там, за да го подпише. CA Тъй като нашите, тогава ние ще се подпише. Тук също има нюанс, свързани с X509v3-разширение - екипът създаде удостоверението по подразбиране не включва разширяването, посочени в КСО (което е посочено в subjectAltName КСО ценности в удостоверението не попада). Ще отидем на най-прост начин - ние ще използваме една и съща конфигурация (OpenSSL-csr.cnf), за да се генерира КСО, от това, ние се нуждаем само секция [req_ext]:

В този случай, "срок на годност" на сертификата трябва да бъде една година (365 дни).

Сега имаме почти пълен набор от всички необходими сертификати. Понякога трябва да се използва ключ некриптиран сървър тук е как можете да получите в server.key.insecure файл, ако server.key е ключът криптиран:

За улеснение може да бъде малко преименуване на файлове:

Да започнем с полезни команди, които позволяват "виждат" Сертификати и КСО:

Сега трябва да се постави на генерираните сертификатите (server.crt и server.key) до желаното място на сървъра. Конкретни подробности вече излизат извън рамките на бележките.

трябва да се добави Браузърът не кълна се в сертификата за базата си от данни CA новосъздадената Калифорния, а именно ca.crt файла за импортиране, погледнете този списък, се появи той. Можете също така да постави на сертификата в хранилище на CA-сертификати за цялата система.