Відмінності між версіями «SSL configure»
| (Не показані 16 проміжних версій 2 користувачів) | |||
| Рядок 1: | Рядок 1: | ||
| − | == | + | == Установка Certificate Authority (CA) using OpenSSL == |
[[ http://www.felipe-alfaro.org/blog/2005/11/18/setting-up-certificate-authority-ca-using-openssl/ |original ]] | [[ http://www.felipe-alfaro.org/blog/2005/11/18/setting-up-certificate-authority-ca-using-openssl/ |original ]] | ||
| − | OpenSSL | + | '''OpenSSL''' утилиты дают большую функциональность. OpenSSL может генерировать '''private keys''' приватные ключи и соответствующие им запросы сертификатов открытого ключа '''public key certificate requests''', может подписывать запросы сертификатов, публиковать анулирование серртификатов '''certificate revocation lists (CRLs)''', конвертировать между некоторыми форматами кодировок например DER, PEM, PKCS#12, etc. |
| − | + | В этом статье я опишу как использовать OpenSSL, чтобы установить Certificate Authority (CA), как сгенерировать приватный ключ, генерировать запрос сертификатов и подписать их, ипользуя OpenSSL и command-line утилиты на CentOS Linux system. | |
| + | |||
| + | |||
| + | == Конфигурироание OpenSSL == | ||
| + | Редактируем /etc/pki/tls/openssl.cnf и удостовертесь, что секция [ CA_default ] выглядит следующим образом: | ||
| + | обратите внимание на выделенное | ||
| + | |||
| + | [ CA_default ] | ||
| + | |||
| + | dir = /etc/pki/CA # Where everything is kept | ||
| + | certs = $dir/certs # Where the issued certs are kept | ||
| + | crl_dir = $dir/crl # Where the issued crl are kept | ||
| + | database = $dir/'''index.txt''' # database index file. | ||
| + | unique_subject = no # Set to 'no' to allow creation of | ||
| + | # several ctificates with same subject. | ||
| + | new_certs_dir = $dir/'''newcerts''' # default place for new certs. | ||
| + | |||
| + | certificate = $dir/'''cacert.pem''' # The CA certificate | ||
| + | serial = $dir/'''serial''' # The current serial number | ||
| + | #crlnumber = $dir/crlnumber # the current crl number must be | ||
| + | # commented out to leave a V1 CRL | ||
| + | crl = $dir/crl.pem # The current CRL | ||
| + | private_key = $dir/private/'''cakey.pem'''# The private key | ||
| + | RANDFILE = $dir/private/.rand # private random number file | ||
| + | |||
| + | x509_extensions = usr_cert # The extentions to add to the cert | ||
| + | |||
| + | # Comment out the following two lines for the "traditional" | ||
| + | # (and highly broken) format. | ||
| + | name_opt = ca_default # Subject Name options | ||
| + | cert_opt = ca_default # Certificate field options | ||
| + | |||
| + | # Extension copying option: use with caution. | ||
| + | # copy_extensions = copy | ||
| + | |||
| + | # Extensions to add to a CRL. Note: Netscape communicator chokes on V2 CRLs | ||
| + | # so this is commented out by default to leave a V1 CRL. | ||
| + | # crlnumber must also be commented out to leave a V1 CRL. | ||
| + | # crl_extensions = crl_ext | ||
| + | |||
| + | default_days = 365 # how long to certify for | ||
| + | default_crl_days= 30 # how long before next CRL | ||
| + | default_md = sha1 # which md to use. | ||
| + | preserve = no # keep passed DN ordering | ||
| + | |||
| + | # A few difference way of specifying how similar the request should look | ||
| + | # For type CA, the listed attributes must be the same, and the optional | ||
| + | # and supplied fields are just that. | ||
| + | policy = policy_match | ||
| + | |||
| + | |||
| + | == Создание Certificate Authority (CA) == | ||
| + | |||
| + | Этим шагом мы создадим '''CA приватный ключ''' и самоподписываемый self-signed '''CA сертификат'''. | ||
| + | '''CA Сертификат''' будет сохранен в '''/etc/pki/CA/cacert.pem''', тогда как '''CA private key''' будет сохранен в '''/etc/pki/CA/private/cakey.pem''': | ||
| + | '''openssl req -new -x509 -days 365 -newkey rsa:1024 -keyout /etc/pki/CA/private/cakey.pem -out /etc/pki/CA/cacert.pem''' | ||
| + | '''chmod 600 /etc/pki/CA/private/cakey.pem''' | ||
| + | |||
| + | копия каждого подписанного сертификата будет сохранена в '''/etc/pki/CA/newcerts''', с именем которое подходит серийному номеру сертификата плюс .pem расширение. '''PEM''' (Privacy Enhanced Mail): | ||
| + | '''mkdir /etc/pki/CA/newcerts''' | ||
| + | Файл /etc/pki/CA/index.txt содержит лог каждого подписанного сертификата: | ||
| + | '''touch /etc/pki/CA/index.txt''' | ||
| + | Файл /etc/pki/CA/serial файл содержит следующий X.509 свободный серийный номер: | ||
| + | '''echo 01 > /etc/pki/CA/serial''' | ||
| + | |||
| + | == Генерирование запроса сертификата и соответствующего ему приватного ключа == | ||
| + | |||
| + | Следующая команда сгенерирует , 1024-bit приватный RSA ключ и соответствующий ему публичный ключ будез завернут в PEM-encoded сертификат. Этот сертификат все еще не подписан и будет подан к CA на подпись позже: | ||
| + | |||
| + | '''openssl req -new -days 365 -newkey rsa:1024 -keyout /etc/pki/CA/sslkey.pem -out /etc/pki/CA/sslcert.pem''' | ||
| + | |||
| + | Приватный ключ будет сохранен в /etc/pki/CA/sslkey.pem тогда как публичный ключ, закодирован в не подписанный сертификат, будет сохранен в /etc/pki/CA/sslcert.pem. | ||
| + | |||
| + | опция -nodes может быть использована что бы избежать pass-phrase для защиты приватного ключа. Это опционально, но некоторые приложения не могут прочитать приватный ключ если он защищен pass-phrase, тогда как другие FreeRADIUS делают это без проблем. | ||
| + | |||
| + | |||
| + | == Подписывание Сертификата == | ||
| + | |||
| + | Что бы подписать сертификат сохраненный в /etc/pki/CA/sslcert.pem, используйте следующие комманды:, | ||
| + | '''cd /etc/pki/CA/newcerts''' | ||
| + | '''openssl ca -in /etc/pki/CA/sslcert.pem -out /etc/pki/CA/cert.pem''' | ||
| + | |||
| + | Результирующий подписанный сертификат будет сохранен в /etc/pki/CA/cert.pem. когда сертификат подписан, то не подписанный сертификат можно удалить. | ||
Поточна версія на 20:15, 24 березня 2009
Зміст
Установка Certificate Authority (CA) using OpenSSL
[[ http://www.felipe-alfaro.org/blog/2005/11/18/setting-up-certificate-authority-ca-using-openssl/ |original ]]
OpenSSL утилиты дают большую функциональность. OpenSSL может генерировать private keys приватные ключи и соответствующие им запросы сертификатов открытого ключа public key certificate requests, может подписывать запросы сертификатов, публиковать анулирование серртификатов certificate revocation lists (CRLs), конвертировать между некоторыми форматами кодировок например DER, PEM, PKCS#12, etc.
В этом статье я опишу как использовать OpenSSL, чтобы установить Certificate Authority (CA), как сгенерировать приватный ключ, генерировать запрос сертификатов и подписать их, ипользуя OpenSSL и command-line утилиты на CentOS Linux system.
Конфигурироание OpenSSL
Редактируем /etc/pki/tls/openssl.cnf и удостовертесь, что секция [ CA_default ] выглядит следующим образом: обратите внимание на выделенное
[ CA_default ]
dir = /etc/pki/CA # Where everything is kept
certs = $dir/certs # Where the issued certs are kept
crl_dir = $dir/crl # Where the issued crl are kept
database = $dir/index.txt # database index file.
unique_subject = no # Set to 'no' to allow creation of
# several ctificates with same subject.
new_certs_dir = $dir/newcerts # default place for new certs.
certificate = $dir/cacert.pem # The CA certificate
serial = $dir/serial # The current serial number
#crlnumber = $dir/crlnumber # the current crl number must be
# commented out to leave a V1 CRL
crl = $dir/crl.pem # The current CRL
private_key = $dir/private/cakey.pem# The private key
RANDFILE = $dir/private/.rand # private random number file
x509_extensions = usr_cert # The extentions to add to the cert
# Comment out the following two lines for the "traditional"
# (and highly broken) format.
name_opt = ca_default # Subject Name options
cert_opt = ca_default # Certificate field options
# Extension copying option: use with caution.
# copy_extensions = copy
# Extensions to add to a CRL. Note: Netscape communicator chokes on V2 CRLs
# so this is commented out by default to leave a V1 CRL.
# crlnumber must also be commented out to leave a V1 CRL.
# crl_extensions = crl_ext
default_days = 365 # how long to certify for
default_crl_days= 30 # how long before next CRL
default_md = sha1 # which md to use.
preserve = no # keep passed DN ordering
# A few difference way of specifying how similar the request should look
# For type CA, the listed attributes must be the same, and the optional
# and supplied fields are just that.
policy = policy_match
Создание Certificate Authority (CA)
Этим шагом мы создадим CA приватный ключ и самоподписываемый self-signed CA сертификат. CA Сертификат будет сохранен в /etc/pki/CA/cacert.pem, тогда как CA private key будет сохранен в /etc/pki/CA/private/cakey.pem:
openssl req -new -x509 -days 365 -newkey rsa:1024 -keyout /etc/pki/CA/private/cakey.pem -out /etc/pki/CA/cacert.pem chmod 600 /etc/pki/CA/private/cakey.pem
копия каждого подписанного сертификата будет сохранена в /etc/pki/CA/newcerts, с именем которое подходит серийному номеру сертификата плюс .pem расширение. PEM (Privacy Enhanced Mail):
mkdir /etc/pki/CA/newcerts
Файл /etc/pki/CA/index.txt содержит лог каждого подписанного сертификата:
touch /etc/pki/CA/index.txt
Файл /etc/pki/CA/serial файл содержит следующий X.509 свободный серийный номер:
echo 01 > /etc/pki/CA/serial
Генерирование запроса сертификата и соответствующего ему приватного ключа
Следующая команда сгенерирует , 1024-bit приватный RSA ключ и соответствующий ему публичный ключ будез завернут в PEM-encoded сертификат. Этот сертификат все еще не подписан и будет подан к CA на подпись позже:
openssl req -new -days 365 -newkey rsa:1024 -keyout /etc/pki/CA/sslkey.pem -out /etc/pki/CA/sslcert.pem
Приватный ключ будет сохранен в /etc/pki/CA/sslkey.pem тогда как публичный ключ, закодирован в не подписанный сертификат, будет сохранен в /etc/pki/CA/sslcert.pem.
опция -nodes может быть использована что бы избежать pass-phrase для защиты приватного ключа. Это опционально, но некоторые приложения не могут прочитать приватный ключ если он защищен pass-phrase, тогда как другие FreeRADIUS делают это без проблем.
Подписывание Сертификата
Что бы подписать сертификат сохраненный в /etc/pki/CA/sslcert.pem, используйте следующие комманды:,
cd /etc/pki/CA/newcerts openssl ca -in /etc/pki/CA/sslcert.pem -out /etc/pki/CA/cert.pem
Результирующий подписанный сертификат будет сохранен в /etc/pki/CA/cert.pem. когда сертификат подписан, то не подписанный сертификат можно удалить.