Modssl позволяет закодировано передавать данные с помощью алгоритма ssl. Это можно определить по «https://» в названии страницы. Такой способ передачи данных важен при передаче паролей или засекреченной информации. Он, например, необходим при пользовании «online banking».
Создание сертификатов
1. Нужен линукс. Также для создания сертификатов нужно инсталлировать «openssl».
2. Создание сертификатов:
1 2 3 |
openssl genrsa -out server.key -des3 1024 openssl req -new -x509 -days 1460 -key server.key -out server.crt openssl rsa -in server.key -out server_without_passwd.key |
Внимание: «Common Name» — это название домейна страницы или его IP-адрес. Тут следует задать «имяТвоегоАкаунта.dyndns.org» или, соответственно, другой адрес DNS.
3. Итак, нужно скопировать следующие файлы в дирикторию «conf» apache-сервера:
- server.crt
- server_without_passwd.key
Поправить apache.conf
В коце концов нужно внести следующии изменения в apache.conf для поддержки SSL:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
Listen 443 # Лучше всего вставить после "Listen 85" # [...] DocumentRoot "/var/media/data/apache/htdocs" ServerName 192.168.178.1 ServerAdmin radislv@lavabit.com ErrorLog /var/media/data/apache/logs/error.log TransferLog /var/media/data/apache/logs/apache_access_log SSLEngine on SSLCertificateFile /var/media/data/apache/conf/server.crt SSLCertificateKeyFile /var/media/data/apache/conf/server_without_passwd.key SSLOptions +StdEnvVars <Directory "/var/media/data/apache/cgi-bin"> SSLOptions +StdEnvVars CustomLog /var/media/data/apache/logs/ssl_request.log \ "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b" |
В моей стандартной конфигурации этот раздел существует как комментарий.
Тестирование
Если всё правильно настроено, то на страницу можно зайти также по этому адресу: https://192.168.178.1
Заметим: порт 443 стандартно используется для SSL, и поэтому, если включён отдалённый доступ, этот порт им уже занят. Чтобы избежать конфликтов я рекомендую изменить порт для отдалённого доступа, например, на 444. В этом случае получаем следующие адреса:
- Отдалённый доступ: https://192.168.178.1:444
- Apache(modssl): https://192.168.178.1 или https://192.168.178.1:443
Защищённый внешний доступ
1. Для того чтобы веб-сервер был доступен из интернета, нужно следующее добавить в ar7.cfg в разделе «forwardrules»:
1 2 3 4 |
forwardrules = "udp 0.0.0.0:5060 0.0.0.0:5060", [...] "tcp 0.0.0.0:443 0.0.0.0:443 0 # apache" [...] |
Смотри также раздел «ar7.cfg»
2. Теперь на веб-сервер можно зайти из интернета: https://[твой Ip-адрес]/
«твой Ip-адрес» нужно, конечно заменить правильным IP-адресом. Его всех проще найти посетив эту страничку: hier
Например: https://123.123.123.123/