====== Сертификаты SSL ======
===== Сертификаты могут лежать в нескольких местах =====
/etc/ssl/
/etc/letsencrypt/archive/доменное имя
/etc/letsencrypt/live/доменное имя
===== Создание Сертификата SSL через openssl =====
openssl req -new -x509 -days 1461 -nodes -out /etc/ssl/public.pem -keyout /etc/ssl/private.key -subj "/C=RU/ST=SPb/L=SPb/O=Global Security/OU=IT Department/CN=Ваше доменное имя"
Где **/etc/ssl/** путь к сертификату
===== Создание сертификата SSL через certbot =====
==== Apache ====
certbot certonly --webroot --agree-tos --email service@fellk.ru --webroot-path /var/www/html/ -d fellk.ru -d www.fellk.ru
==== TXT вашего хостера ====
certbot certonly --manual --agree-tos --email service@fellk.ru --preferred-challenges=dns -d fellk.ru -d www.fellk.ru
На запрос отвечаем Y и получаем подобное сообщение
Please deploy a DNS TXT record under the name
_acme-challenge.fellk.ru with the following value:
VHFPbXt82j2oUjhxVgS7Bphpkf3Cv1Bq9KSA2dd
Once this is deployed,
Теперь идем к хостеру и создаем там TXT-запись _acme-challenge.fellk.ru
с содержимым **VHFPbXt82j2oUjhxVgS7Bphpkf3Cv1Bq9KSA2dd**
===== Создание сертификата SSL через certbot на все поддомены =====
certbot certonly --manual --agree-tos --email service@fellk.ru --server https://acme-v02.api.letsencrypt.org/directory --preferred-challenges=dns -d fellk.ru -d *.fellk.ru
Как и в предыдущем случае система попросит создать TXT запись.
===== Собственный центр сертификации =====
* Создаем корневой закрытый ключ - openssl genpkey -algorithm RSA -out rootCA.key -aes-128-cbc
* Создаем корневой закрытый сертификат - openssl req -x509 -new -key rootCA.key -sha256 -days 3650 -out rootCA.crt
* Создаем файл для хранения порядковых номеров с содержимым **00** - nano rootCA.srl
* Устанавливаем корневой сертификат на все нужные ПК любым способом в **Доверенные корневые центры сертификации**
* Создаем конфигурационный файл под каждое ваше доменное имя - nano test.cnf
Содержимое конфига меняйте по своей структуре
[ req ]
default_bits = 2048
distinguished_name = req_distinguished_name
req_extensions = req_ext
[ req_distinguished_name ]
countryName = Country Name (2 letter code)
countryName_default = RU
stateOrProvinceName = State or Province Name (full name)
stateOrProvinceName_default = Spb
localityName = Locality Name (eg, city)
localityName_default = Spb
organizationName = Organization Name (eg, company)
organizationName_default = Test
commonName = Common Name (eg, YOUR name or FQDN)
commonName_max = 64
commonName_default = test.test.ru
[ req_ext ]
basicConstraints = CA:FALSE
keyUsage = nonRepudiation, digitalSignature, keyEncipherment
subjectAltName = DNS:test.test.ru
* Создаем закрытый ключ для своего домена - openssl genpkey -algorithm RSA -out test.key
* Создаем файл запроса - openssl req -new -key test.key -config test.cnf -reqexts req_ext -out test.csr
* Создаем сам сертификат - openssl x509 -req -days 730 -CA rootCA.crt -CAkey rootCA.key -extfile test.cnf -extensions req_ext -in test.csr -out test.crt
* Подключаем созданный сертификат к вашему домену через ваш веб сервер
* Проверяем работу домена и не забываем обновлять сертификаты по истечении срока годности