15 марта, 2012

Генерация самоподписанного сертификата с openSSL

Переработка этой статьи, чтобы не искать её каждый раз, когда нужно сгенерировать сертификат.

Для начала сгенерируем ключ. OpenSSL не позволяет сгенерировать ключь, не защищенный паролем. Nginx не запускается с ключем, защищенным паролем. Чтобы устранить противоречия, сначала создаётся защищенный ключ, потом с него снимается защита.

# openssl genrsa -des3 -out server.key.encrypted 2048
 Generating RSA private key, 2048 bit long modulus
 ........+++
 ..................+++
 e is 65537 (0x10001)
 Enter pass phrase for server.key.encrypted:
 Verifying - Enter pass phrase for server.key.encrypted:
# openssl rsa -in server.key.encrypted -out server.key
 Enter pass phrase for server.key.encrypted:
 writing RSA key
# rm server.key.encrypted

Теперь имея ключ, можно создавать сертификат. Никаких особых хитростей, главное чтобы в CN был целевой адрес.

# openssl req -new -key server.key -out server.csr
 You are about to be asked to enter information that will be incorporated
 into your certificate request.
 What you are about to enter is what is called a Distinguished Name or a DN.
 There are quite a few fields but you can leave some blank
 For some fields there will be a default value,
 If you enter '.', the field will be left blank.
 -----
 Country Name (2 letter code) [AU]:RU
 State or Province Name (full name) [Some-State]:Moscow
 Locality Name (eg, city) []:Moscow
 Organization Name (eg, company) [Internet Widgits Pty Ltd]:Mind
 Organizational Unit Name (eg, section) []:
 Common Name (eg, YOUR name) []:example.ru
 Email Address []:

 Please enter the following 'extra' attributes
 to be sent with your certificate request
 A challenge password []:
 An optional company name []:
# openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
 Signature ok
 subject=/C=RU/ST=Moscow/L=Moscow/O=Mind/CN=example.ru
 Getting Private key

Комментариев нет:

Отправить комментарий