Настройка для Apache+SSL для openSuSe 11.4. Чисто для себя сохранил то что нужно.

Настройка для SSL для openSuSe 11.4. Чисто для себя сохранил то что нужно.

Предварительные настройки


]]>

Корректируем конфиг OpenSSL]]> создаем любую свою директорию и в нее копируем шаблон openssl.cnf.tmpl из /var/lib/CAM и правим:

      dir = .
      certs = $dir/ssl.crt
      crl_dir = $dir/ssl.crl
      database = $dir/index.dat
      new_certs_dir = $dir/ssl.crt
      certificate = $dir/ssl.crt/<файл корневого
 сертификата>
      serial = $dir/serial
      crl = $dir/ssl.clr/<файл отозванных сертификатов>
      private_key = $dir/ssl.key/<файл приватного
 ключа - ключа корневого сертификата>
      RANDFILE = $dir/ssl.key/.rand

Примечание. 
Для удобства при заполнении полей при создании сертификатов можно поменять значения по умолчанию для таких полей сертификатов, как страна, штат, отдел, адрес электронной почты и общее название. 
ВНИМАНИЕ! При создании сертификата сервера, значение поля Common Name должно соответствовать доменному имени (FQDN) сервера, на котором будет работать сертификат. Создаем в этой папке /cert, /ssl.crt и файлы index.dat, index.dat.attr, serial.


Создаём файл серийного номера:

      # echo '01' > serial

Создаём файл базы данных сертификатов:

     # touch index.dat

Создаём корневой сертификат:

Создаём ключ корневого сертификата:

     # openssl genrsa -des3 -out <файл ключа корневого
 сертификата> 1024

Создаём самоподписанный корневой сертификат

     # openssl req -new -x509 -days 3653 -key
 <файл ключа корневого сертификата> -out <файл сертификата>

Создаём запрос на подписание сертификата сервера:

Создаём ключ сертификата сервера:

     # openssl genrsa -des3 -out <файл ключа
 сертификата сервера> 1024

Создаём запрос на подписание сертификата сервера:

     # openssl req -new -days 1096 -key <файл ключа
 сертификата сервера -out <файл запрос на подписание
 сертификата сервера>

Подписываем запрос на подписание сертификата сервера (создание сертификата сервера):

     # openssl ca -config /etc/ssl/openssl.cnf 
-days 365 -out <файл сертификата сервера>
 -infiles <файл запроса на подписание сертификата сервера>

В моем случае:


openssl ca -config /root/crt/openssl.cnf -days 365 -out gscert.pem -infiles gscert_s.pem

 

Просмотр содержимого файлов сертификатов/ключей:

Просмотр содержимого файла ключа:

     # openssl rsa -noout -text -in <файл ключа>

Просмотр содержимого файла сертификата:

     openssl x509 -noout -text -in <файл сертификата>

Просмотр содержимого файла запроса на подписние сертификата сервера:

     openssl req -noout -text -in <файл запроса на 
подписание сертификата сервера>

Смена/удаление пароля из файла ключа

Смена пароля в файле ключа:

# openssl rsa -des3 -in <файл ключа> -out
 <временный файл ключа>
# mv <временный файл ключа> <файл ключа>

Удаление пароля из файла ключа:

     # cp <файл ключа> <сохраняемый файл ключа>
     # openssl rsa -in <сохраняемый файл ключа>
 -out <файл ключа>

Экспорт корневого сертификата:

openssl pkcs12 -export -out <новое имя>pfx -in <root>.pem -inkey <root>.key

Как посмотреть список доступных шифров?

Использовать команду ciphers:

# все доступные шифры
openssl ciphers -v

# только шифры TLSv1
openssl ciphers -v -tls1

# только шифры длиною больше 128 битов (high ciphers)
openssl ciphers -v 'HIGH'

# только шифры длиною больше 128 битов, использующие AES
openssl ciphers -v 'AES+HIGH'

 

 

Как измерить производительность сетевого соединения?

openssl s_time -connect remote.host:443

Помимо этого простейшего измерения у подкоманды s_time есть множество других возможностей:

# получить удалённую страницу test.html, используя только
 новые сеансы
openssl s_time -connect remote.host:443 -www /test.html 
-new

# аналогично, но только используя SSLv3 и сильное
 шифрование
# (подробности относительно шифрования в ciphers(1))
openssl s_time \
  -connect remote.host:443 -www /test.html -new \
  -ssl3 -cipher HIGH

# сравнить относительную производительность разных шифров
# 10-секундные тесты
IFS=":"
for c in $(openssl ciphers -ssl3 RSA); do
echo $c
openssl s_time -connect remote.host:443 \
    -www / -new -time 10 -cipher $c 2>&1 | \
    grep bytes
echo
done

Сэмулировать web-сервер с помощью openssl s_server:

# запустить сервер (на порту 4433)
openssl s_server -cert mycert.pem -www

# на втором хосте (или даже этом же) запустить s_time
openssl s_time -connect myhost:4433 -www / -new -ssl3

Все "левые" протоколы и шифрования убрать:

SSLCipherSuite CAMELLIA128-SHA:!EXP:!NULL:+MEDIUM:-LOW
SSLProtocol +SSLv3 -SSLv2 -TLSv1
 

Пример директив:

 
ServerName <имя сайта>
SSLEngine on
 
SSLCertificateFile /etc/apache2/crt/gscert.pem
SSLCertificateKeyFile /etc/apache2/crt/gscert.key
SSLCACertificateFile /etc/apache2/crt/gsroot.pem
#SSLCipherSuite RSA:!EXP:!NULL:+HIGH:+MEDIUM:-LOW
SSLCipherSuite CAMELLIA128-SHA:!EXP:!NULL:+MEDIUM:-LOW
SSLProtocol +SSLv3 -TLSv1 -SSLv2
 
Теги: 

Похожие материалы по этой теме на сайте

Содержимое
RusLive

RusLive Full (мультизагрузочный вариант - RusLive, MemTest86+, HDD Regenerator, Victoria,  VCOM Partition Commander, BootIt,  PowerQuest Drive Image, Video Memory stress Test,  QuickTech Pro, Symantec Ghost, Symantec Image Center,  Acronis: True...

Wifi Hopper

 Менеджер беспроводных сетей.

FastStone MAXVIEW

Компактный просмотрщик графических файлов.

OnTrack EasyRecovery 6.20

Плагин для OnTrack EasyRecovery Professional 6.20 (TIRAMISU)- содержит файлы программы.

Универсальный сервер сетевой загрузки и установки. Продолжение.

С разрешения редакции журнала "Системный администратор" публикую продолжение статьи.

Универсальный сервер сетевой загрузки и установки. Часть 2.

В первой части статьи [1] были рассмотрены принципы работы,...

TRANSMAC

Плагин для TRANSMAC(MACOS FS support) - содержит файлы программы.

FAR manager 3.0.3132 WIM

WIM-плагин для FAR manager 3.0.3132 – содержит файлы программы.

Paragon HardDisk Manager 10.0 RUS WIM

WIM-плагин для Paragon HardDisk Manager 10.0 RUS - содержит файлы программы.