Настройка для 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
 
Теги: 

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

Содержимое
Atlantis Word WIM

Компактный редактор с поддержкой DOC, DOCX, RTF.

EASEUS Partition Table Doctor 3.5

Плагин для EASEUS Partition Table Doctor 3.5 - содержит файлы программы. Данная программа позволяет восстанавливать таблицу разделов, ссылки на файловую систему. Внимание!!! Производит изменение на восстанавливаемом диске!

GPT support

Поддержка GUID Partition Table для WinXP.

exFAT

Плагин для поддержки exFAT.

Acronis Disk Director Server 10. 2161 RUS WIM

WIM-Плагин для Acronis Disk Director Server 10. 2161 RUS - содержит файлы программы.
Теперь SNAPMAN стартует непосредственно перед запуском программы.

Symantec Ghost 8.2

Плагин для Symantec Ghost 8.2 - содержит файлы программы.

Установка WinPE на USB MSD

Комплект для установки WINPE на USB FLASH или USB HDD

Готовые сборки WinPE


Для размещающих: