====== PKI на OpenSSL ======
FIXME
[[pki:pki|PKI]] (Public Key Infrastructure) − инфраструктура открытых ключей.
Реализация инфраструктуры открытых ключей на [[openssl:openssl|OpenSSL]].
Программа для работы с ключами: [[xca:xca|XCA]]
====== Собственный Удостоверяющий центр (УЦ) ======
===== Создание корневого ключа шифрования =====
openssl genrsa -out domain_rootCA.key 4096
===== Создание сертификата корневого ключа без пароля =====
openssl req \
-new -x509 -days 5000\
-subj '/CN=Organization/emailAddress=pki@domain.ru/OU=Organization/O=Organization/L=Yoshkar-Ola/ST=Mari El/C=RU'\
-key domain_rootCA.key\
-out domain_rootCA.crt
===== Создание сертификата корневого ключа с паролем =====
openssl req \
-new -x509 -days 5000\
-subj '/CN=Organization/emailAddress=pki@domain.ru/OU=Organization/O=Organization/L=Yoshkar-Ola/ST=Mari El/C=RU'\
-keyout domain_rootCA.key\
-out domain_rootCA.crt
===== Изменение/создание пароля =====
openssl rsa -des3 -in domain_rootCA.key -out new_domain_rootCA.key
mv new_domain_rootCA.key domain_rootCA.key
===== Удаление пароля =====
:!: Для того, чтобы удалить пароль нужно его знать!
openssl rsa -in domain_rootCA.key -out new_domain_rootCA.key
mv new_domain_rootCA.key domain_rootCA.key
====== Примеры использования ======
===== Создание ключа и сертификата для HTTPS =====
Можно использовать для [[apache:apache#Работа по HTTPS|Apache]]
# Создание ключа шифрования
openssl genrsa -out domain.ru.key 2048
# Создание запроса на сертификат
openssl req -new\
-subj '/CN=*.domain.ru/emailAddress=pki@domain.ru/OU=IT/O=Organization/L=Yoshkar-Ola/ST=Mari El/C=RU'\
-out domain.ru.csr\
-key domain.ru.key
# Подписание запрос на сертификат корневым сертификатом
openssl x509 -req\
-CA domain_rootCA.crt\
-CAkey domain_rootCA.key\
-CAcreateserial\
-in domain.ru.csr\
-out domain.ru.crt\
-days 1000
===== Dovecot =====
FIXME
[[dovecot:dovecot|Dovecot]]
disable_plaintext_auth = yes
auth_mechanisms = plain login
ssl = yes
ssl_cert =
service imap-login {
inet_listener imap {
port = 143
}
inet_listener imaps {
port = 993
ssl = yes
}
}
===== Postfix =====
[[postfix:postfix|Postfix]]
FIXME
unix_listener /var/spool/postfix-o/private/auth {
mode = 0666
}
smtpd_use_tls = yes
smtpd_tls_cert_file = /etc/ssl/certs/domain.ru.crt
smtpd_tls_key_file = /etc/ssl/private/domain.ru.key
#smtpd_tls_CApath = /etc/ssl/certs
smtpd_tls_CApath = /etc/ssl/certs/rootCA.crt
smtpd_tls_loglevel = 2
smtpd_tls_received_header = yes
smtps inet n - - - - smtpd
-o syslog_name=postfix-o/smtps
-o smtpd_tls_wrappermode=yes
-o smtpd_sasl_auth_enable=yes
-o smtpd_sasl_type=dovecot
-o smtpd_sasl_path=private/auth
-o smtpd_client_restrictions=permit_sasl_authenticated,reject
-o mynetworks=0.0.0.0/0
====== Добавление корневого сертификата УЦ ======
Для того, чтобы доверять сертификатам, выданным УЦ - нужно оказать доверие корневому сертификата УЦ.
* [[firefox:firefox#Добавление корневого сертификата УЦ|Firefox]]
* [[Google_Chrome:Google_Chrome#Добавление корневого сертификата УЦ|Google Chrome]]
* Для программ которые используют общую БД [[ms_windows:ms_windows#Добавление корневого сертификата УЦ|MS Windows]], например [[Google_Chrome:Google_Chrome|Google Chrome]].
====== Ссылки ======
[[https://ru.wikipedia.org/wiki/Инфраструктура_открытых_ключей|wikipedia: Инфраструктура_открытых_ключей]]
[[https://ru.wikipedia.org/wiki/Самозаверенный_сертификат|wikipedia: Самозаверенный сертификат]]
**[[http://habrahabr.ru/post/192446/ |Своё Certificate Authority — в 5 OpenSSL команд]]**
[[http://reply-to-all.blogspot.ru/2012/10/openssl.html |Свой собственный УЦ на OpenSSL]]
[[http://www.handcode.ru/2010/03/openssl.html |Создаем сертификаты: OpenSSL]]
[[http://pro-ldap.ru/books/openldap-ubuntu-in-practice/tls.html |OpenLDAP и Ubuntu на практике > Настройка TLS (Transport Layer Security)]]
[[http://wiki.val.bmstu.ru/doku.php?id=пакет_openssl|wiki.val.bmstu.ru: Пакет OpenSSL]]
**[[http://www.securitylab.ru/analytics/456595.php |Советы и трюки по работе с OpenSSL]]**
[[http://appossum.com/appsite/techdetail/ssl-part2 | SSL. Часть 2. Центр сертификации своими руками]]
[[http://blog.regolit.com/2010/02/16/personal-ca-and-self-signed-certificates | Создаём собственный CA и подписываем им сертификаты для своих ресурсов ]]
[[http://citforum.ru/security/cryptography/certificate_authority |Практическое руководство по созданию центра сертификации]]
**[[https://pki.openca.org|OpenCA Labs]]**
**[[http://habrahabr.ru/company/yandex/blog/249771/|Как и зачем мы делаем TLS в Яндексе]]**
**[[http://habrahabr.ru/post/258285/|Что такое TLS]]**
https://ru.wikipedia.org/wiki/STARTTLS
http://wiki2.dovecot.org/SSL
:!: **[[http://www.mad-hacking.net/documentation/linux/security/ssl-tls/creating-ca.xml|Creating a Certificate Authority (CA)]]**
https://help.ubuntu.com/community/OpenSSL
http://www.alvestrand.no/objectid/2.5.29.31.html
**[[http://bog.pp.ru/work/security.html#cert|Bog BOS: Безопасность: Сертификаты]]**
**[[http://pro-ldap.ru/tr/zytrax/tech/ssl.html|Руководство по выживанию — TLS/SSL и сертификаты SSL (X.509)]]**
**[[http://pki-tutorial.readthedocs.org|OpenSSL PKI Tutorial v1.1]]**
{{tag>Encryption Linux}}