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

Матеріал з Wiki Welard
Перейти до навігації Перейти до пошуку
 
(Не показані 9 проміжних версій 2 користувачів)
Рядок 1: Рядок 1:
−
== Setting up Certificate Authority (CA) using OpenSSL ==
+
== Установка 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 может генерировать '''private keys''' приватные ключи и соответствующие им '''public key certificate requests''' запросы сертификатов открытого ключа, может подписывать (sign) запросы сертификатов, публиковать анулирование серртификатов '''certificate revocation lists (CRLs)''',  конвертировать между некоторыми форматами кодировок  например DER, PEM, PKCS#12, etc.
+
'''OpenSSL''' утилиты дают большую функциональность. OpenSSL может генерировать '''private keys''' приватные ключи и соответствующие им запросы сертификатов открытого ключа '''public key certificate requests''', может подписывать запросы сертификатов, публиковать анулирование серртификатов '''certificate revocation lists (CRLs)''',  конвертировать между некоторыми форматами кодировок  например DER, PEM, PKCS#12, etc.
  
−
In this article I will describe how to use OpenSSL to set up a Certificate Authority (CA), how to generate private keys, generate certificate requests and sign them, using OpenSSL and the command-line on a Fedora Core 4 Linux system.
+
В этом статье я опишу как использовать OpenSSL, чтобы установить Certificate Authority (CA), как сгенерировать приватный ключ, генерировать запрос сертификатов и подписать их, ипользуя OpenSSL и command-line утилиты на CentOS Linux system.
  
  
−
== Configuring OpenSSL ==
+
== Конфигурироание OpenSSL ==
−
Edit /etc/pki/tls/openssl.cnf and make sure the [ CA_default ] section looks like this:
+
Редактируем /etc/pki/tls/openssl.cnf и удостовертесь, что секция [ CA_default ] выглядит следующим образом:
 +
обратите внимание на выделенное
 
   
 
   
 
  [ CA_default ]
 
  [ CA_default ]
Рядок 15: Рядок 16:
 
  certs          = $dir/certs            # Where the issued certs are kept
 
  certs          = $dir/certs            # Where the issued certs are kept
 
  crl_dir        = $dir/crl              # Where the issued crl are kept
 
  crl_dir        = $dir/crl              # Where the issued crl are kept
−
  database        = $dir/index.txt        # database index file.
+
  database        = $dir/'''index.txt'''       # database index file.
 
  unique_subject  = no                    # Set to 'no' to allow creation of
 
  unique_subject  = no                    # Set to 'no' to allow creation of
 
                                         # several ctificates with same subject.
 
                                         # several ctificates with same subject.
−
  new_certs_dir  = $dir/newcerts        # default place for new certs.
+
  new_certs_dir  = $dir/'''newcerts'''         # default place for new certs.
 
   
 
   
−
  certificate    = $dir/cacert.pem      # The CA certificate
+
  certificate    = $dir/'''cacert.pem'''       # The CA certificate
−
  serial          = $dir/serial          # The current serial number
+
  serial          = $dir/'''serial'''           # The current serial number
 
  #crlnumber      = $dir/crlnumber        # the current crl number must be
 
  #crlnumber      = $dir/crlnumber        # the current crl number must be
 
                                         # commented out to leave a V1 CRL
 
                                         # commented out to leave a V1 CRL
 
  crl            = $dir/crl.pem          # The current CRL
 
  crl            = $dir/crl.pem          # The current CRL
−
  private_key    = $dir/private/cakey.pem# The private key
+
  private_key    = $dir/private/'''cakey.pem'''# The private key
 
  RANDFILE        = $dir/private/.rand    # private random number file
 
  RANDFILE        = $dir/private/.rand    # private random number file
 
   
 
   
Рядок 54: Рядок 55:
  
  
−
== Creating the Certificate Authority (CA) ==
+
== Создание Certificate Authority (CA) ==
  
−
This step will create the CA private key and a self-signed certificate (the CA certificate).
+
Этим шагом мы создадим '''CA приватный ключ'''  и самоподписываемый self-signed '''CA сертификат'''.
−
The CA certificate will be stored in /etc/pki/CA/cacert.pem, while the CA private key will be stored in /etc/pki/CA/private/cakey.pem:
+
'''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'''
 
  '''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'''
 
  '''chmod 600 /etc/pki/CA/private/cakey.pem'''
−
 
+
−
A copy of every signed certificate will be stored into /etc/pki/CA/newcerts, with a name matching the certificate serial number plus the .pem extension:
+
копия каждого подписанного сертификата будет сохранена в '''/etc/pki/CA/newcerts''', с именем которое подходит серийному номеру сертификата  плюс .pem расширение. '''PEM''' (Privacy Enhanced Mail):
 
  '''mkdir /etc/pki/CA/newcerts'''
 
  '''mkdir /etc/pki/CA/newcerts'''
−
The /etc/pki/CA/index.txt file holds a log of every signed certificate:
+
Файл /etc/pki/CA/index.txt содержит лог каждого подписанного сертификата:
 
  '''touch /etc/pki/CA/index.txt'''
 
  '''touch /etc/pki/CA/index.txt'''
−
The /etc/pki/CA/serial file holds the next available X.509 serial number:
+
Файл /etc/pki/CA/serial файл содержит следующий X.509 свободный серийный номер:
 
  '''echo 01 > /etc/pki/CA/serial'''
 
  '''echo 01 > /etc/pki/CA/serial'''
  
−
== Generating a certificate request and its corresponding private key ==
+
== Генерирование запроса сертификата и соответствующего ему приватного ключа ==
  
−
The following command will generate a random, 1024-bit private RSA key and its corresponding public key will be wrapped into a PEM-encoded certificate. This certificate is still unsigned and will be submitted later to the CA for signing:
+
Следующая команда сгенерирует , 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'''
 
  '''openssl req -new -days 365 -newkey rsa:1024 -keyout /etc/pki/CA/sslkey.pem  -out /etc/pki/CA/sslcert.pem'''
  
−
The private key will get written to /etc/pki/CA/sslkey.pem while the public key, encoded inside an unsigned certificate, will get written to /etc/pki/CA/sslcert.pem.
+
Приватный ключ будет сохранен в /etc/pki/CA/sslkey.pem тогда как публичный ключ, закодирован в не подписанный сертификат, будет сохранен в  /etc/pki/CA/sslcert.pem.
  
−
The -nodes option can be used to avoid using a pass-phrase to protect the private key. This is optional, but some applications are unable to read the private key if it was protected by a pass-phrase, while others like FreeRADIUS can do so with no problems at all.
+
опция -nodes может быть использована что бы избежать pass-phrase для защиты приватного ключа. Это опционально, но некоторые приложения не могут прочитать приватный ключ  если он защищен pass-phrase, тогда как другие FreeRADIUS делают это без проблем.
  
  
−
== Signing a certificate ==
+
== Подписывание Сертификата ==
  
−
To sign a certificate stored in /etc/pki/CA/sslcert.pem, use the following command:,
+
Что бы подписать сертификат сохраненный в /etc/pki/CA/sslcert.pem, используйте следующие комманды:,
 
  '''cd /etc/pki/CA/newcerts'''
 
  '''cd /etc/pki/CA/newcerts'''
 
  '''openssl ca -in /etc/pki/CA/sslcert.pem -out /etc/pki/CA/cert.pem'''
 
  '''openssl ca -in /etc/pki/CA/sslcert.pem -out /etc/pki/CA/cert.pem'''
  
−
The resulting signed certificate will get outputted to /etc/pki/CA/cert.pem. Once the certificate has been signed, the unsigned certificate can be safely deleted.
+
Результирующий подписанный сертификат будет сохранен в /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. когда сертификат подписан, то не подписанный сертификат можно удалить.