OpenSSL — криптографический пакет с открытым исходным кодом для работы с SSL/TLS. Позволяет создавать ключи RSA, DH, DSA и сертификаты X.509, подписывать их, формировать CSR и CRT. Также имеется возможность шифрования данных и тестирования SSL/TLS соединений.

Свой центр сертификации

  • Корневой центр

Создаём корневой центр

1
openssl genrsa -out rootCA.key 2048

Создаём корневой сертификат (на 10 лет, 3652 дней)

1
openssl req -x509 -new -key rootCA.key -days 3652 -out rootCA.crt

Файл rootCA.crt можно раздать и импортировать в системы в доверенные корневые центры сертификации

Использование

На другой машине (или на этой же), создаём ключ для нужного сайта:

1
openssl genrsa -out site.key 2048

Генерируем запрос сертификата для этого сайта:

1
openssl req -new -key site.key -out site.csr

В поле Common Name обязательно нужно правильно указать URL сайта

Теперь скидываем csr туда же, где и корневой сертификат и подписываем (так же на 10 лет):

1
openssl x509 -req -in site.csr -CA rootCA.crt -CAkey rootCA.key -CAcreateserial -out site.crt -days 3652

На выходе получаем нужный нам site.crt, который скидываем на нужный сервер и прописываем в apache. Пример конфига:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
 LoadModule ssl_module modules/mod_ssl.so
 Listen 443
  SSLPassPhraseDialog  builtin
  SSLSessionCache         shmcb:/var/cache/mod_ssl/scache(512000)
  SSLSessionCacheTimeout  300
  SSLMutex default
  SSLRandomSeed startup file:/dev/urandom  256
  SSLRandomSeed connect builtin
  SSLCryptoDevice builtin
 
 <VirtualHost _default_:443>
  ErrorLog logs/ssl_error_log
  TransferLog logs/ssl_access_log
  LogLevel warn
  SSLEngine on
  SSLProtocol +SSLv3 +TLSv1
  SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM:+LOW
   SSLCertificateFile /PATH/help.crt
   SSLCertificateKeyFile /PATH/help.key
  DocumentRoot /var/www/https
 </VirtualHost>

Всё, URL в браузере должен быть зелёного цвета (или просто зелёный значек, в зависимости от браузера), при условии, что вы не забыли внести rootCA.crt в доверенные корневые центры сертификации.