Відмінності між версіями «SSL configure»

Матеріал з Wiki Welard
Перейти до навігації Перейти до пошуку
 
 
(Не показані 17 проміжних версій 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 ]]
  
−
== Setting up Certificate Authority (CA) using OpenSSL ==
+
'''OpenSSL''' утилиты дают большую функциональность. OpenSSL может генерировать '''private keys''' приватные ключи и соответствующие им  запросы сертификатов открытого ключа '''public key certificate requests''', может подписывать запросы сертификатов, публиковать анулирование серртификатов '''certificate revocation lists (CRLs)''',  конвертировать между некоторыми форматами кодировок  например DER, PEM, PKCS#12, etc.
−
[[ http://www.felipe-alfaro.org/blog/2005/11/18/setting-up-certificate-authority-ca-using-openssl/ |original ]]
+
 
 +
В этом статье я опишу как использовать 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. когда сертификат подписан, то не подписанный сертификат можно удалить.