====== 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}}