Обновил Apache, засада с ssl [Решено]
Обновил Apache, создал заново ssl файлы по мануалу:
First, we need to generate a random key with the following command:
openssl genrsa -des3 -out server.key 1024
At this point, a certificate created this way would force Apache to ask for the passphrase at each startup. If you don't want Apache to prompt you for a passphrase every time you start or restart it, remove the "-des3" option as shown in the next example.
openssl genrsa -out server.key 1024
The next step is to create a key file with the passphrase removed.
openssl rsa -in server.key -out server.pem
Now we need to use this key to generate a certificate request file.
openssl req -new -key server.pem -out server.csr
With this certificate request file, we can now generate ourselves a brand new self signed certificate. The command below generates a certificate which is valid for 365 days. The default value is 30 days without the "-days [number]" option.
openssl x509 -req -days 365 -in server.csr -signkey server.pem -out server.crt
Рестартонул Apache, при соединении по ssl:
При соединении с 192.168.0.1 произошла ошибка.
Сертификат узла имеет неверную подпись.
(Код ошибки: sec_error_bad_signature)
Что я делаю не так?
-------------------------------------------
Нашел причину.
До обновления пути к файлам ssl:
SSLCertificateFile /etc/apache2/ssl/server.crt
SSLCertificateKeyFile /etc/apache2/ssl/server.key
а после обновления:
SSLCertificateFile /etc/ssl/apache2/server.crt
SSLCertificateKeyFile /etc/ssl/apache2/server.key
Вот описание:
Настройка Apache + SSL в Gentoo linux
Нижеперечисленные пункты следует применять к уже настроенному серверу apache. Как заставить его работать можно прочитать в этой статье.
Теперь продолжаем:
1. Проверьте, есть ли в файле /etc/make.conf в переменной USE клочевое слово ssl. Если его не было, добавьте и выполните
emerge --update --newuse --deep world
2. Установим поддержку самого ssl. В файле /etc/conf.d/apache2 найдем строку
APACHE2_OPTS=
И приведем ее к виду
APACHE2_OPTS="-D PHP4 -D SSL"
3. Сгенерируем сертификаты.
cd /etc/apache2/ssl
openssl req -new > new.cert.csr
Когда после этой команды генератор спросит 'YOUR name', нужно ввести имя виртуалхоста (ServerName). В нашем случае это server.linux.my (см. ниже)
openssl rsa -in privkey.pem -out server.linux.my.key
openssl x509 -in new.cert.csr -out server.linux.my.cert -req -signkey server.linux.my.key -days 365
rm new.cert.csr
rm privkey.pem
4. Отредактируем файл нужного виртуалхоста, там надо добавить конфигурацию ssl:
ServerName server.linux.my
ServerAlias www.server.linux.my
DocumentRoot /home/testuser/htdocs
CustomLog /home/testuser/log/log.log combined
php_admin_value open_basedir /home/testuser
SSLEngine on
SSLCertificateFile /etc/apache2/ssl/server.linux.my.cert
SSLCertificateKeyFile /etc/apache2/ssl/server.linux.my.key
5. После чего
/etc/init.d/apache2 restart
После того, как apache скажет, что перезагружен, он может в течении нескольких минут не отвечать на запросы. Это нормально, он там генерирует "secret for digest authentication".
- Для комментирования войдите или зарегистрируйтесь