Bekijk de volledige versie : Доступ к lighttpd с ssl только по сертификатам
Приветствую коллеги.
Во-первых, громадное спасибо Олегу за его прошивку и всем людям, участвующим в развитии этого форума. Почитав его, настолько вдохновился, что решил подкинуть свои 5 копеек :)
Дело в том, что установив rtorrent с веб-мордой, vnstat, ados, rrdtool, решил выпустить всё это добро наружу с соответствующим уровнем безопасности. И вот что из этого вышло.
Внимание, данный HOWTO не претендует на полноту, абсолютную правильность и вселенскую истину. Я не гуру в Линуксе, просто чтение и попытки понять мануалы и хелпы. Как обычно as is. У меня всё замечательно работает. С удовольствием принимаются замечания, корректировки и комментарии.
Источники:
http://wl500g.info/showpost.php?p=90459&postcount=343
http://www.unixdoc.ru/print.php?print_id=155
Задача - получить доступ по ssl к lighttpd снаружи c авторизацией исключительно с помощью клиентских сертификатов. Как результат, получаем зашифрованное соединение, отсутствие передачи по сети каких-либо паролей, которые можно попытаться снять кейлоггером либо брутфорсом, доступ только с компьютера, в браузер которого импортирован сооответствующий клиентский сертификат.
Предполагается, что уже имеем настроенный и корректно работающий lighttpd. Уже сконфигуренные замечательные приблуды типа ados, морды rtorrent, rrdtool, vnstat и т.д. ("ку" 3 раза их создателям и людям, написавшим мануалы по их установке) процессу не мешают и впоследствии совершенно замечательно работают под новой конфигурацией.
1. Устанавливаем openssl
ipkg install openssl
2. Создаем каталог, где будет храниться всё, имеющее отношение к ssl.
mkdir /opt/etc/lighttpd/ssl
3. Копируем текущий конфигурационный файл lighttpd.
cp /opt/etc/lighttpd/lighttpd.conf /opt/etc/lighttpd/lighttpd_ssl.conf
4. Редактируем новый файл lighttpd_ssl.conf
- в разделе server.modules раскомментируем записи о mod_access, mod_cgi и mod_accesslog;
- в разделе server.port меняем порт на 443;
- раскомментируем раздел cgi.assign. У меня уже был установлен perl, посему просто прописал корректные пути к бинарнику
cgi.assign = ( ".pl" => "/opt/bin/perl",
".cgi" => "/opt/bin/perl" )
Коллеги рекомендуют вместо /opt/bin/perl прописать /bin/sh. Наверное, чтобы не ставить perl, но у меня он уже был установлен, так что оставил как есть.
- раскомментируем всю секцию SSL engine. В качестве путей вписываем пути до файлов сертификатов сервера, которые нам еще предстоит создать ниже, в пунктах 7 и 8.
#### SSL engine
ssl.engine = "enable"
ssl.pemfile = "/opt/etc/lighttpd/ssl/lighttpd.pem"
ssl.ca-file = "/opt/etc/lighttpd/ssl/lighttpd.crt"
ssl.verifyclient.activate = "enable"
ssl.verifyclient.enforce = "enable"
ssl.verifyclient.depth = 1
5. Идем в каталог ssl и начинаем шаманить.
cd /opt/etc/lighttpd/ssl
touch index.txt
echo '01' > serial
touch ca.cfg
6. Редактируем файл ca.cfg до подобного содержания
[ ca ]
default_ca = CA_CLIENT
[ CA_CLIENT ]
dir = /opt/etc/lighttpd/ssl
certs = $dir
new_certs_dir = $dir
database = $dir/index.txt
serial = $dir/serial
certificate = $dir/lighttpd.crt
private_key = $dir/lighttpd.key
default_days = 3650
default_crl_days = 3
default_md = md5
policy = policy_anything
[ policy_anything ]
countryName = optional
stateOrProvinceName = optional
localityName = optional
organizationName = optional
organizationalUnitName = optional
commonName = supplied
emailAddress = optional
7. Cоздаем сертификат для сервера. В процессе спросит свойства ключа, заполнять по желанию. Единственное замечание - в поле common name желательно прописать FQDN рутера, например ваш dyndns-аккаунт, если конечно вы это используете.
openssl req -newkey rsa:2048 -nodes -keyout lighttpd.key -x509 -days 3650 -out lighttpd.crt
Generating a 2048 bit RSA private key
.................+++
.+++
writing new private key to 'lighttpd.key'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:RU
State or Province Name (full name) [Some-State]:Russia
Locality Name (eg, city) []:Moscow
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Home
Organizational Unit Name (eg, section) []:
Common Name (eg, YOUR name) []:user.dyndns.org
Email Address []:
[user@/opt/etc/lighttpd/ssl ]$
8. Создаем pem-файл для сервера.
cat lighttpd.key lighttpd.crt > lighttpd.pem
9. Создаем клиентский сертификат. В процессе аналогично интересуются про страну, имя и т.д. как в пункте 8. На вопросы
A challenge password []:
An optional company name []:
просто нажимаем Enter.
openssl req -new -newkey rsa:2048 -nodes -keyout user.key -out user.csr
10. Подписываем и конвертируем клиентский сертификат. Вместо 12345 в нижеследующем коде пишем пароль для защиты сертификата, который у вас запросят при импортировании сертификата в браузер.
openssl ca -config ca.cfg -in user.csr -out user.crt -batch
openssl pkcs12 -export -in user.crt -inkey user.key -certfile lighttpd.crt -out user.p12 -passout pass:12345
11. Через Самбу, ftp или флешку, у кого чего, копируем файл /opt/etc/lighttpd/ssl/user.p12 с роутера на клиентскую машину и импортируем в броузер.
12. Останавливаем lighttpd
/opt/etc/init.d/S80lighttpd stop
13. Редактируем скрипт запуска lighttpd для старта с новым конфигурационным файлом. Изменяем следующую строчку в файле /opt/etc/init.d/S80lighttpd. Если чего-то пойдет не так, всегда можно вернутся к предыдущему конфигу.
DAEMON_OPTS="-f ${prefix}/etc/lighttpd/lighttpd_ssl.conf"
14. Разрешаем на файрволе доступ по https. Для этого редактируем файл /usr/local/sbin/post-firewall и заносим туда строчку
iptables -I INPUT -m tcp -p tcp --dport 443 -j ACCEPT
15. Как всегда на всякий пожарный
flashfs save && flashfs commit && flashfs enable
reboot
16. Заходим на роутер уже через https. При входе, в зависимости от браузера, будет ругаться на неизвестный самоподписанный сертификат, тем не менее все работает замечательно. Можно, правда, вытащить сертификат сервера и импортировать его как доверенный, тогда и ругаться не будет. Может попозже допишу такой вариант.
DarthSemafor
03-11-2008, 20:10
Вопрос:
как поставить ssl и авторизацию только на директорию с rtorrent, если папка rtorrent должна находиться в корне (/www/rtorrent) ?
Долго игрался с настройкой модуля http://wl500g.info/showpost.php?p=90611&postcount=352 так ничего и не вышло, есть доступ и к корню и к rtorrent :( Гуру, помогите пожалуйста с настройкой
Вопрос:
как поставить ssl и авторизацию только на директорию с rtorrent, если папка rtorrent должна находиться в корне (/www/rtorrent) ?
Долго игрался с настройкой модуля http://wl500g.info/showpost.php?p=90611&postcount=352 так ничего и не вышло, есть доступ и к корню и к rtorrent :( Гуру, помогите пожалуйста с настройкой
А почему она там должна находиться? Переместите ее в параллельную папку и все будет нормально работать.
DarthSemafor
03-11-2008, 21:04
Переместил в /opt/share/rtorrent серт просит подписать, но авторизацию по имени и паролю не требует:( А вообще можно настроить так, чтобы при запросе на www.blablabla.com был http, а при запросе на https://blablabla.com/rtorrent был ssl и авторизация, и http://blablabla.com/rtorrent недоступно вообще?
Переместил в /opt/share/rtorrent серт просит подписать, но авторизацию по имени и паролю не требует:( А вообще можно настроить так, чтобы при запросе на www.blablabla.com был http, а при запросе на https://blablabla.com/rtorrent был ssl и авторизация, и http://blablabla.com/rtorrent недоступно вообще?
Два порта --- два разных корня (http://wl500g.info/showpost.php?p=90611&postcount=352)
DarthSemafor
03-11-2008, 21:20
Два порта --- два разных корня[/URL]
Сделал так:
$SERVER["socket"] == ":443" {
ssl.engine = "enable"
ssl.pemfile = "/opt/var/run/lighttpd.pem"
server.document-root = "/opt/share/rtorrent"
auth.require = ( "" =>
(
"method" => "digest",
"realm" => "RT",
"require" => "valid-user"
)
)
}
https://192.168.1.1:8081/rtorrent/ не открывает
Сделал так:
$SERVER["socket"] == ":443" {
ssl.engine = "enable"
ssl.pemfile = "/opt/var/run/lighttpd.pem"
server.document-root = "/opt/share/rtorrent"
auth.require = ( "" =>
(
"method" => "digest",
"realm" => "RT",
"require" => "valid-user"
)
)
}
https://192.168.1.1:8081/rtorrent/ не открывает
Порт тут зачем???
Порт тут зачем???
Я даже не понял сначала Ваш ответ :)
1.
Считаю что нужно обяснить:
НТТР - по умолчанию 80 порт
НТТРS - по умолчанию 443 порт
браузер сам смотрит на эти порты их указывать не надо!
2.
Если Вы в конфиг файле прописали как $SERVER["socket"] == ":443"
тогда https://192.168.1.1/rtorrent/
Или например
Если Вы в конфиг файле прописали как $SERVER["socket"] == ":8083"
тогда https://192.168.1.1:8083/rtorrent/
3.
Сообщение от DarthSemafor
Сделал так:
$SERVER["socket"] == ":443" {
ssl.engine = "enable"
ssl.pemfile = "/opt/var/run/lighttpd.pem"
server.document-root = "/opt/share/rtorrent"
auth.require = ( "" =>
(
"method" => "digest",
"realm" => "RT",
"require" => "valid-user"
)
)
}
https://192.168.1.1:8081/rtorrent/ не открывает
Зачем вы вы указываете подпапку в корне сервера если корнем является именно она?
Выглядит это так:
Ваш server.document-root = "/opt/share/rtorrent"
А по Вашему запросу Ваш сервер будет обращатся в
/opt/share/rtorrent/rtorrent
Итог
Чтобы открыть морду rtorrent Вам необходимо ввести в строке браузера
https://192.168.1.1/
После чего если все остальные настройки верны Вы получите запрос авторизации.
DarthSemafor
04-11-2008, 14:05
Люди, помогите плз. не работают ssl соединения через рутер - https(443), pop3(995).
http, ftp работает отлично, а при попытке соединения по https IE выдает ошибку, а в логах рутера появляются сообщения :
Feb 24 21:45:52 pppd[98]: Protocol-Reject for unsupported protocol 0xea4f
Feb 24 21:45:53 pppd[98]: Protocol-Reject for unsupported protocol 0x8c62
Feb 24 21:46:05 pppd[98]: Protocol-Reject for unsupported protocol 0xf65b
Feb 24 21:46:22 pppd[98]: Protocol-Reject for unsupported protocol 0xd42f
Feb 24 21:46:41 pppd[98]: Protocol-Reject for unsupported protocol 0x9ec8
причем цифры типа 0x8c62 от случая к случаю могут отличаться.
При попытках получить почту через POP3(SSL) часть почты удается получить, но все равно в логах появляются подобные приведенным выше сообщения.
может кто сталкивался с такой проблемой?
UPD: вопрос решился установкой nomppc в дополнительных параметрах pppd
Всем спасибо за ответы! Особенно Less за разъяснение:) И еще маленький вопрос: как наиболее безопасно и грамотно пробросить порт 443 наружу с помощью post-firewall?
Всем спасибо за ответы! Особенно Less за разъяснение:) И еще маленький вопрос: как наиболее безопасно и грамотно пробросить порт 443 наружу с помощью post-firewall?
Я думаю ето то что нужно Доступ к lighttpd с ssl только по сертификатам (http://wl500g.info/showthread.php?t=15859&highlight=vnstat&nojs=1)
DarthSemafor
05-11-2008, 17:54
Я думаю ето то что нужно Доступ к lighttpd с ssl только по сертификатам (http://wl500g.info/showthread.php?t=15859&highlight=vnstat&nojs=1)
Сделал так:
iptables -I INPUT -m tcp -p tcp --dport 443 -j ACCEPT
ssl не бросается наружу:( Изнутри прекрасно коннектится.
Сделал так:
iptables -I INPUT -m tcp -p tcp --dport 443 -j ACCEPT
ssl не бросается наружу:( Изнутри прекрасно коннектится.
А дайте ка вывод команды iptables -nvL INPUT
Должно быть что то типа:
Chain INPUT (policy DROP 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:443
...
А так же netstat -na | grep 443
И тут
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:443 0.0.0.0:* LISTEN
И попробуйте вот так
iptables -I INPUT -m tcp -p tcp --syn -i "$1" --dport 443 -j ACCEPT
DarthSemafor
05-11-2008, 20:05
И попробуйте вот так
iptables -I INPUT -m tcp -p tcp --syn -i "$1" --dport 443 -j ACCEPT
вбил правило, получилось следующее
iptables -nvL INPUT
pkts bytes target prot opt in out source destination
0 0 ACCEPT tcp -- ppp0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:443 flags:0x16/0x02
4 208 ACCEPT tcp -- ppp0 * 0.0.0.0/0 93.80.xxx.xxx tcp dpt:8080 flags:0x16/0x02
и так далее...
netstat -na | grep 443
tcp 0 0 0.0.0.0:443 0.0.0.0:* LISTEN
Слушается...
Нодоступа из инета всё равно нет
DarthSemafor
05-11-2008, 20:36
Причина найдена - провайдер!
Просто - напросто блокирует порты с 1 по 1024, кроме фтп и http:(
Причина найдена - провайдер!
Просто - напросто блокирует порты с 1 по 1024, кроме фтп и http:(
перебросьте вверх вместо 443 на 8000+ в чём проблема?
1. Когда запускаю vsftpd то появляется сообщение о вводе пас фразы сгенерированного сертификата
Enter PEM pass phrase:
Водможно ли это автоматизировать, или есть какая опция в конфигах?
2. В конфиге установлено:
...
ssl_enable=YES
ssl_sslv2=NO
ssl_sslv3=NO
ssl_tlsv1=YES
allow_anon_ssl=NO
force_anon_logins_ssl=NO
force_anon_data_ssl=NO
force_local_data_ssl=NO
force_local_logins_ssl=YES
rsa_cert_file=/opt/etc/vsftpd.pem
rsa_private_key_file=/opt/etc/vsftpd.key
...
Соединяется, но качает очень медленно 200...400 кб/сек. Видимо используется шифрование канала данных, и в топе нагрузка на процессор 95% при закачке. Где с этим бороться на серваке или на клиенсткой части. Качаю при помощи тотал командера, настройки ftps соединения не нашел...
для скорости выключи ssl
Возможности vsftpd и примеры их использования. (http://linuxopen.ru/2008/05/22/vozmozhnosti-vsftpd-i-primery-ikh.html)
для скорости выключи ssl
Возможности vsftpd и примеры их использования.
В том то и дело, что мне нужна безопасная авторизация локальных пользователей...
Thx, за ссылку . Видел массу аналогичных ... На русском и англ. языках
angel_il
16-01-2009, 07:12
авторизацию я думаю возможно организовать другими методами, например через правила iptables, закрывать 21 порт например для определенного ip/mac пока не пройдет авторизацию, а потом анонимно отдавать контент, иначе если убрать ssl то пароли от ftp будут бегать в открытом виде а если поставить ее то будет медленно качаться.
а для авторизации написать маленькую веб страничку
авторизацию я думаю возможно организовать другими методами, например через правила iptables, закрывать 21 порт например для определенного ip/mac пока не пройдет авторизацию, а потом анонимно отдавать контент, иначе если убрать ssl то пароли от ftp будут бегать в открытом виде а если поставить ее то будет медленно качаться.
а для авторизации написать маленькую веб страничку
С этим я соглашусь, но видимо я не достаточно полно описал мою ситуацию, т.к. сие тоже не подходит.
По мимо публичных папок для доступа анонимусами, есть еще и .private папка (как говориться, для друзей), в которой можно записывать, читать, удалять, создавать директории локальным пользователем. Заведомо маки ипы друзей я не знаю, потому предустановленные правила по ипам тут не помогут.
Использование для анонимусов опций:
deny_file={*private*}
force_dot_files=NO
а для локального пользователя
deny_file={}
force_dot_files=YES
считаю полумерой, ибо, как говорилось выше, пароли локальных пользователей летают незашифрованными без ssl. И любой, кто проснифил пароль спокойнечко будет царствовать в этой директории.
Ктати, я перекомпилил vsftpd c дополнительной, на мой взгляд пользительной, опцией anonymous_name. Так сказать, чтоб небыло полного лоховства при выдаче анонимоуса во внешний мир. Чтоб там всякие гуглы постоянно не сканировали дерево каталогов. Чтоб не обвиняли, что я выкладываю в открытый доступ проприетарное ПО. Так, если поставить anonymous_name=STEPHANOPOPULUS, то смогут зайти только анонимусы с логином stephanopopulus.
А Вы сами собирали vsftpd с поддержкой SSL? Можно ли у Вас попросить Вашу версию. Также хотел бы сделать авторизацию пользователей поверх SSL, но vsftpd, который в прошивке, собран без поддержки SSL.
2 abbat. Посмотрите эту небольшую тему:
http://wl500g.info/showthread.php?t=16866
Там я выкладывал бинарник + достаточно полную инструкцию по компиляции. Правда bbsc заметил, что мой бинарник не поддерживает
tcpwrappers, а сам я не пробовал использовать эту опцию. Со скоростью проблема решиласть дефолтным параметром anon_rate_max=0
bbsc тоже выкладывал бинарник с поддержкой tcpwrappers (наличие ssl не упоминалось). Тут http://wl500g.info/showpost.php?p=119458&postcount=132.
По поводу первого вопроса сабжа решилось следующим образом...
Как показано тут... http://nemcd.com/2008/06/ftp-server-vsftpd-virtual-mysql/
Производим манипуляции в папке /opt/etc
openssl genrsa -des3 -out vsftpd.key 2048
openssl rsa -in vsftpd.key -out vsftpd.pem
openssl req -new -key vsftpd.key -out vsftpd.csr
openssl x509 -req -days 366 -in vsftpd.csr -signkey vsftpd.key -out vsftpd.crt
rm vsftpd.pem
mv vsftpd.crt vsftpd.pem
Далее нашел здесь
http://docs.huihoo.com/apache/httpd/apache2.html
"8.9. Disabling the passphrase on startup (Optional)"
cp vsftpd.key vsftpd.bak
openssl rsa -in vsftpd.bak -out vsftpd.key
И сервер при запуске больше не спрашивает пасс фразу.
Решился второй вопрос сабжа.
Странно, но когда я определил для локальных пользователей разрешенные команды (cmds_allowed),
то соединение данных перестало принужденно шифроваться, причем наличие или отсутствие разрешенных команд ftp AUTH,ADAT никак не влияло на данный факт... Может я чего не понимаю?
Доброго всем времени суток! Подниму старую тему, что бы не плодить похожую. У меня при организации SSL, сервер никак не хочет принимать лог/пасс. Настраивал тремя способами:
http://wl500g.info/showpost.php?p=90459&postcount=343
http://wl500g.info/showpost.php?p=90583&postcount=351
http://wl500g.info/showpost.php?p=90611&postcount=352
Ну хоть убейся..
Включил отладочную информацию. Вот, что пишет в error.log:
2009-02-03 06:26:37: (request.c.294) fd: 8 request-len: 401
GET / HTTP/1.1
User-Agent: Opera/9.63 (Windows NT 6.0; U; ru) Presto/2.1.1
Host: 192.168.1.1
Accept: text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1
Accept-Language: ru-RU,ru;q=0.9,en;q=0.8
Accept-Charset: iso-8859-1, utf-8, utf-16, *;q=0.1
Accept-Encoding: deflate, gzip, x-gzip, identity, *;q=0
Connection: Keep-Alive
2009-02-03 06:26:37: (response.c.264) -- splitting Request-URI
2009-02-03 06:26:37: (response.c.265) Request-URI : /
2009-02-03 06:26:37: (response.c.266) URI-scheme : https
2009-02-03 06:26:37: (response.c.267) URI-authority: 192.168.1.1
2009-02-03 06:26:37: (response.c.268) URI-path : /
2009-02-03 06:26:37: (response.c.269) URI-query :
2009-02-03 06:26:37: (response.c.297) -- sanatising URI
2009-02-03 06:26:37: (response.c.298) URI-path : /
2009-02-03 06:26:37: (mod_access.c.135) -- mod_access_uri_handler called
2009-02-03 06:26:37: (response.c.121) Response-Header:
HTTP/1.1 401 Unauthorized
WWW-Authenticate: Digest realm="VU", nonce="831811b867255351afa1f5757c80b2ad", qop="auth"
Content-Type: text/html
Content-Length: 351
Date: Tue, 03 Feb 2009 03:26:37 GMT
Server: lighttpd/1.4.20
2009-02-03 06:26:37: (request.c.294) fd: 8 request-len: 695
GET / HTTP/1.1
User-Agent: Opera/9.63 (Windows NT 6.0; U; ru) Presto/2.1.1
Host: 192.168.1.1
Accept: text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1
Accept-Language: ru-RU,ru;q=0.9,en;q=0.8
Accept-Charset: iso-8859-1, utf-8, utf-16, *;q=0.1
Accept-Encoding: deflate, gzip, x-gzip, identity, *;q=0
Authorization: Digest username="alexey", realm="VU", uri="/", algorithm=MD5, nonce="831811b867255351afa1f5757c80b2ad", cnonce="6YUa6007kyUfPcX+k6SJUIg8tZQtSZr8T6iSs66GtDO=", qop=auth, nc=00000001, response="f147358277308d01dac72d4114c3d554"
Connection: Keep-Alive, TE
TE: deflate, gzip, chunked, identity, trailers
2009-02-03 06:26:37: (response.c.264) -- splitting Request-URI
2009-02-03 06:26:37: (response.c.265) Request-URI : /
2009-02-03 06:26:37: (response.c.266) URI-scheme : https
2009-02-03 06:26:37: (response.c.267) URI-authority: 192.168.1.1
2009-02-03 06:26:37: (response.c.268) URI-path : /
2009-02-03 06:26:37: (response.c.269) URI-query :
2009-02-03 06:26:37: (response.c.297) -- sanatising URI
2009-02-03 06:26:37: (response.c.298) URI-path : /
2009-02-03 06:26:37: (mod_access.c.135) -- mod_access_uri_handler called
2009-02-03 06:26:37: (response.c.121) Response-Header:
HTTP/1.1 401 Unauthorized
WWW-Authenticate: Digest realm="VU", nonce="92f2e6733dc02ecda065ed279455a5bf", qop="auth"
Content-Type: text/html
Content-Length: 351
Date: Tue, 03 Feb 2009 03:26:37 GMT
Server: lighttpd/1.4.20
2009-02-03 06:26:39: (request.c.294) fd: 8 request-len: 748
GET /favicon.ico HTTP/1.1
User-Agent: Opera/9.63 (Windows NT 6.0; U; ru) Presto/2.1.1
Host: 192.168.1.1
Accept: text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1
Accept-Language: ru-RU,ru;q=0.9,en;q=0.8
Accept-Charset: iso-8859-1, utf-8, utf-16, *;q=0.1
Accept-Encoding: deflate, gzip, x-gzip, identity, *;q=0
Authorization: Digest username="alexey", realm="VU", uri="/favicon.ico", algorithm=MD5, nonce="831811b867255351afa1f5757c80b2ad", cnonce="6YUa6007kyUfPcX+k6SJUIg8tZQtSZr8T6iSs66GtDO=", qop=auth, nc=00000002, response="0e2818b55d236d556abd4f4584465e8e"
Referer: https://192.168.1.1/
Connection: Keep-Alive, TE
TE: deflate, gzip, chunked, identity, trailers
2009-02-03 06:26:39: (response.c.264) -- splitting Request-URI
2009-02-03 06:26:39: (response.c.265) Request-URI : /favicon.ico
2009-02-03 06:26:39: (response.c.266) URI-scheme : https
2009-02-03 06:26:39: (response.c.267) URI-authority: 192.168.1.1
2009-02-03 06:26:39: (response.c.268) URI-path : /favicon.ico
2009-02-03 06:26:39: (response.c.269) URI-query :
2009-02-03 06:26:39: (response.c.297) -- sanatising URI
2009-02-03 06:26:39: (response.c.298) URI-path : /favicon.ico
2009-02-03 06:26:39: (mod_access.c.135) -- mod_access_uri_handler called
2009-02-03 06:26:39: (response.c.121) Response-Header:
HTTP/1.1 401 Unauthorized
WWW-Authenticate: Digest realm="VU", nonce="74ab0855e5cfa11188f546e83dd17038", qop="auth"
Content-Type: text/html
Content-Length: 351
Date: Tue, 03 Feb 2009 03:26:39 GMT
Server: lighttpd/1.4.20
О чем это говорит, в чем трабл?
И если не затруднит приложите конфиг рабочего варианта, пожалуйста.
Пожалуйста поставте задачу конкретней.
Необходима авиоризация логин/пароль + ssl или по сертефикату?
При наличии правиль поставленной задачи (!) смогу вечерком Вам помочь (по шагово с примером конфига...)
Мне нужно запоролить доступ к веб-мордам (rtorrent и все такое). SSL наверное предпочтительнее, в силу большей защищенности. В этом случае сертификат и log/pass необходимы, как я понимаю. Получается SSL + имя/пароль + сертификат. Если возможно, представьте решение которое вам известно, к примеру - как у Вас устроено.
альтернативный вариант --- не мучать веб сервер, а использовать ssh туннели, см. например: http://www.wl500g.info/showthread.php?t=12833
Сейчас вместе с lighttpd дефолтом и автоматом ставится и openssl, куча всего ещё, зачем-то, ещё даже до конца не разобрался чего. В общем, качаем здесь (http://wl500g.info/showpost.php?p=90459&postcount=343) и ставим, как написано, бинарник htdigest, это для авторизации безопасным методом digest (может не работать на старых и некоторых плохих браузерах), создаём сертификат, как там написано.
В S80lighttpd менять ничего не надо, редактируем /opt/etc/lighttpd/lighttpd.conf Раскомментировать строку ssl.engine = "enable", раскомментировать ssl.pemfile поменять значение на "/opt/var/run/lighttpd.pem", раскомментируем строку auth.backend, меняем значение на "htdigest", ниже добавляем строку
auth.backend.htdigest.userfile = "/opt/etc/lighttpd/.passwd"
Если, например, хотим запаролить директорию с веб-фейсом rtorrent'а (rtorrent), меняем секцию auth.require, должно выглядеть так:
auth.require = ( "/rtorrent" =>
(
"method" => "digest",
"realm" => "rtorrent",
"require" => "valid-user"
)
)
Сохраняем. Создаём файл с юзерами и паролями для авторизации.
htdigest -c /opt/etc/lighttpd/.passwd rtorrent имяюзера
Спросит пароль юзера.
Перезапускаем веб-сервер:
/opt/etc/init.d/S80lighttpd restart
Проверяем работу.
С пробросом порта наружу тоже могут быть проблемы, не далее, как сегодня с этим столкнулся. Читаем, например здесь (http://wl500g.info/showpost.php?p=75333&postcount=1).
Всем спасибо за внимание. Возможно, где-то и ошибся, но у меня всё работает.
Vityok. Спасибо тебе огромное! Благодаря тебе заметил, что в место auth.backend.htdigest.userfile, у меня auth.backend.plain.userfile, подтолкнуло - "добавляем строку". Теперь все заработало. И из-за этого я морочился НЕДЕЛЮ! Где же ты раньше был? :) Хотя, я даже подставлял конфиг автора (http://wl500g.info/showpost.php?p=90459&postcount=343) (только порт менял), но что-то у меня не очень хотело работать.
Мне нужно запоролить доступ к веб-мордам (rtorrent и все такое). SSL наверное предпочтительнее, в силу большей защищенности. В этом случае сертификат и log/pass необходимы, как я понимаю. Получается SSL + имя/пароль + сертификат. Если возможно, представьте решение которое вам известно, к примеру - как у Вас устроено.
Хорошо что у Вас всё получилось, но хотел бы добавить.
SSL (HTTPS) шифруется трафик между сервером и клиентом, + в Вашем случае доступ по паролю.
Есть также другой Вариант, с доступом по сертификату (клиентскому), никаких паролей не надо, по идее пароль можно подобрать, с сертификатом все на порядок сложнее и лучше в плане безопасности.
Как это настроить есть на форуме
Доступ к lighttpd с ssl только по сертификатам (http://wl500g.info/showthread.php?p=109789#post109789)
Не, ну это уже паранойа. Всё же там ничего такого кн крутится, чтоб так сильно защищать. А мало ли в каких условиях придётся оказаться и где этот сертификат с флэхи не загрузить.
Кому они нужны-то, качалки ваши, чтоб ещё пароль подбирать? Так, закрыта от посторонних и нормуль, ещё и защищённым соединением с открытым сертификатом, чтоб перехватить было труднее по трафику. А так, ещё и только по серту доступ, слишком уже, имхо.
Спасибо, Less! Я пытался настроить и тем способом, но так же ничего не выходило. Хотя, надо будет повторить, учитывая былые ошибки. Но это так.. Ради искусства. Т.к. согласен с Витьком, с установкой сертификата на удаленных машинах и телефоне, могут возникнуть проблемы. К тому же Опера не захотела его принимать. Да и кому нужны наши качалки? Закрылись от случайных прохожих - и хорошо.
А вот еще вопросик. Можно ли как нибудь подписать сертификат, что бы не ругалось на то, что он подписан неизвестным центром сертификации и нет возможности проверить подлинность?
Спасибо, Less! Я пытался настроить и тем способом, но так же ничего не выходило. Хотя, надо будет повторить, учитывая былые ошибки. Но это так.. Ради искусства. Т.к. согласен с Витьком, с установкой сертификата на удаленных машинах и телефоне, могут возникнуть проблемы. К тому же Опера не захотела его принимать. Да и кому нужны наши качалки? Закрылись от случайных прохожих - и хорошо.
А вот еще вопросик. Можно ли как нибудь подписать сертификат, что бы не ругалось на то, что он подписан неизвестным центром сертификации и нет возможности проверить подлинность?
Суть не втом кому нужны или не нужны (начинающих кулхацкеров никто не отменял), суть в безопасности.
Мне например с работы удобней по сертефикату работать, клик на ссылку и ты на сайте без передачи паролей и т.д.
Для Оперы (работает импорт сертификата у оперы 9.52-9.63, больше не тестил)
openssl pkcs12 -export -descert -inkey client1.key -in client1.crt -out usercert.p12
Для того чтобы не ругалось на самоподписаный сертефикат необходимо:
импортировать сертификат сервера (.csr) в браузер в качестве довереного центра, и он ругатся не будет.
Доп. материалы www bruy.info/ssl.html
Ты мне скажи, не уже ли аутентификации методом digest и открытого сертификата мало? Это ж не какая-нибудь банковская информация или ещё какая военная тайна. Зачем так себе жизнь-то усложнять? Мне кажется, это просто неудобно и ни к чему. В конце концов, сертификат тоже можно сломать или обойти. Как говорится, на каждую хитрую ... всегда найдётся ... с винтом :-) Ну вообще, как знаете, но имхо, лишнее это.
Для того чтобы не ругалось на самоподписаный сертефикат необходимо:
импортировать сертификат сервера (.csr) в браузер в качестве довереного центра, и он ругатся не будет.
Доп. материалы www bruy.info/ssl.html
Спасибо! Теперь совсем красиво стало. :)
Ты мне скажи, не уже ли аутентификации методом digest и открытого сертификата мало? Это ж не какая-нибудь банковская информация или ещё какая военная тайна. Зачем так себе жизнь-то усложнять? Мне кажется, это просто неудобно и ни к чему. В конце концов, сертификат тоже можно сломать или обойти. Как говорится, на каждую хитрую ... всегда найдётся ... с винтом :-) Ну вообще, как знаете, но имхо, лишнее это.
Мало, много... я писал раньше что мне так удобней, импортировал сертификат и работай, никаких тебе паролей (актуально при наличии постоянного компа с которого подключаешся), подключения с клубов, кафе, и т. д. не учитываю, ибо подключаясь с таких мест по средствам логин/пароля, очень не рекомендую, никто Вам не даст гарантию на то что там нету какого либо клафиатурного шпиона. *ИМХО
П.С. Я никого ни кчему не склоняю, что хотите то и делайте.
Всем привет.
Имеется необходимость настроить svn через ssl (из-за прокси на работе к svn-репозиторию можно обратиться только так).
Как это можно сделать?
ps: svn-сервер уже работает через xinetd.
vladb2000
12-03-2009, 07:17
Вроде все темы пролез и поиском пользовался. Нигде не могу найти как сделать доступ снаружи только авторизацией к HTTP и FTP. Открыл доступ из вне. Всё нормально работает, но получается большая дыра. Пробовал сделать из тем, какие нашел - вообще не пускает.
vladb2000
12-03-2009, 08:26
По Lighttpd вроде сделал:
Файл lighttpd.conf
auth.backend = "plain"
auth.backend.plain.userfile = "/opt/etc/lighttpd/lighttpd.user"
auth.require = ( "/rtorrent/" =>
(
"method" => "basic",
"realm" => "Protected",
"require" => "valid-user"
)
)
Создал файл /opt/etc/lighttpd/lighttpd.user
username:password
Вроде работает
http://wl500g.info/showpost.php?p=95828&postcount=36
http://wl500g.info/showpost.php?p=130479&postcount=19
vladb2000
12-03-2009, 10:20
Спасибо, а может и по FTP подскажите?
http://wl500g.info/showthread.php?t=10318&highlight=ftp+%E4%EE%F1%F2%F3%EF
vladb2000
12-03-2009, 11:32
Эта тема не помогает. Мне надо чтобы anonim не видели вообще ftp
По Lighttpd вроде сделал
Только URL /rtorrent закрыть не достаточно. Нужно прикрыть паролем и /RPC2.
vladb2000
12-03-2009, 12:04
Только URL /rtorrent закрыть не достаточно. Нужно прикрыть паролем и /RPC2.
А что в нем?
Break Action
16-06-2009, 23:47
Сейчас все установлено и настроено, но при попытке запустить самый простой скрипт для работы с SQLite получаю 500 ошибку, нигде в логах нет описания.
#!/usr/bin/perl -w
use DBI;
use strict;
my $db = DBI->connect("dbi:SQLite:test.db", "", "", {RaiseError => 1, AutoCommit => 1}) or die $DBI::errstr;
$db->do("CREATE TABLE n (id INTEGER PRIMARY KEY, f TEXT, l TEXT)");
$db->do("INSERT INTO n VALUES (NULL, 'john', 'smith')");
my $all = $db->selectall_arrayref("SELECT * FROM n");
foreach my $row (@$all)
{
my ($id, $first, $last) = @$row;
print "$id|$first|$lastn";
}
$db->disconnect;
exit;
Я был на cpan'е там уже новые версии DBI и DBD::SQLite, могли бы ли их обновить в репозитории. Мне кажется, что проблема в них.
PS: Пробывал другие скрипты, все замечательно работает (я имею ввиду другие библиотеки).
Break Action
17-06-2009, 01:18
При попытке собрать новые библиотеки получаю ошибки
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
LANGUAGE = (unset),
LC_ALL = (unset),
LANG = "en_US.UTF8"
are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
LANGUAGE = (unset),
LC_ALL = (unset),
LANG = "en_US.UTF8"
are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
Checking whether your kit is complete...
Looks good
Checking prerequisites...
Looks good
Deleting Build
Removed previous script 'Build'
Creating new 'Build' script for 'Net-OSCAR' version '1.925'
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
LANGUAGE = (unset),
LC_ALL = (unset),
LANG = "en_US.UTF8"
are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C")
И вот
Use of uninitialized value in split at /opt/lib/perl5/5.8.8/mipsel-linux/DynaLoader.pm line 80.
I see you're using perl 5.008008 on mipsel-linux, okay.
Remember to actually *read* the README file!
Use 'make' to build the software (dmake or nmake on Windows).
Then 'make test' to execute self tests.
Then 'make install' to install the DBI and then delete this working
directory before unpacking and building any DBD::* drivers.
Writing Makefile for DBI
Break Action
17-06-2009, 13:13
Гуру, подскажите плз есть ли решение данной проблемы?
Break Action
17-06-2009, 23:50
Надеюсь на помощь!
Break Action
18-06-2009, 12:51
Решил начать поиск ошибки от этого файла
Use of uninitialized value in split at /opt/lib/perl5/5.8.8/mipsel-linux/DynaLoader.pm line 80.
Там нашел строку
push(@dl_library_path, split(' ', $Config::Config{libpth}));
Судя по всему, тут получаем пути к DDL'кам. И судя по ошибке, указанной выше, мы имеем ошибку при сплите содержания переменной $Config::Config{libpth}, найдем ее.
Записи для данной переменной нашлись в файле /opt/lib/perl5/5.8.8/mipsel-linux/Config_heavy.pl
Далее нашел строку содержащую
libpth=$libpth
и далее расследование зашло в тупик...
Вот только покопавшись в файле Config_heavy.pl, обнаружил некоторые странности:
glibpth='/usr/shlib /lib /usr/lib /usr/lib/386 /lib/386 /usr/ccs/lib /usr/ucblib /usr/local/lib '
Странность в том, что нет первого пробела, после первого пути - 2 пробела и в конце строки есть пробел. Хотя в остальных записях, переменная начинается с пробела и заканчивается без него.
Ну и вот две строки
ldflags=" -L/home/slug/optware/oleg/staging/opt/lib -Wl,-rpath,/opt/lib -Wl,-rpath-link,/home/slug/optware/oleg/staging/opt/lib -Wl,-rpath,/opt/lib/perl5/5.8.8/mipsel-linux/CORE"
ldflags_uselargefiles=" -L/home/slug/optware/oleg/staging/opt/lib -Wl,-rpath,/opt/lib -Wl,-rpath-link,/home/slug/optware/oleg/staging/opt/lib -Wl,-rpath,/opt/lib/perl5/5.8.8/mipsel-linux/CORE"
Пути в этих переменных начинаются с
-L мне кажется это не совсем правильным, хотя я могу ошибаться.
Уважаемые Гуру, помогите плз найти проблему.
Break Action
19-06-2009, 18:06
Все же надеюсь на помощь в решении проблемы!
=)
Break Action
23-06-2009, 00:29
Надеюсь на помощь!
Break Action
25-06-2009, 14:32
Может до кого-нибудь достучусь! (надеюсь не до бана)
А если:
export LANGUAGE = "en_US.UTF8"
export LC_ALL = "en_US.UTF8"
export LANG = "en_US.UTF8"
ЗЫ. Извените если глупость.
igor77777
26-08-2009, 05:14
Решил начать поиск ошибки от этого файла
Use of uninitialized value in split at /opt/lib/perl5/5.8.8/mipsel-linux/DynaLoader.pm line 80.
Там нашел строку
push(@dl_library_path, split(' ', $Config::Config{libpth}));
Решили проблему с Use of uninitialized value...?
PS: Поскольку в perl'е я вообще ноль, то хотелось бы получить помощь от специалистов.
shoorick
05-09-2009, 11:20
Читайте внимательнее — всё же написано: в вызове функции split использована неинициализированная переменная (а точнее, элемент хэша), то есть $Config::Config{libpth}) == undef. Вот перл и ругается.
Конкретнее не скажу: из приведённых вами обрывков трудно понять, что же там происходит, а на моём роутере каталог /opt/lib/perl5/site_perl/5.8.8/mipsel-linux пуст.
igor77777
06-09-2009, 08:49
То, что "элемент хеша", непроинициализирован, это ясно.
Но вот почему, вот в чём был вопрос. Ведь перл я ставил из репозитария, и вроде должно все работать. Ан нет :-(
А другой вопрос. Чем он должен был быть проиницализирован? И Где?
Собственно ответ на вопрос где, я нашел.
Этот хеш (Config) описан в файле /opt/lib/perl5/5.8.8/mipsel-linux/Config.pm
Я даже подсморел, у Убунте, которая у меня стоит на виртуалке, что в этот элемент хеша прописано у неё.
Прописал по аналогии, но не уверен, что правильно.
Ругаться во всяком случае перестало:
# старое значение я закоментарил libpath => undef,
libpath => '/usr/lib /lib /opt/lib /opt/usr/lib'
Помогите пожалуйста ламеру...скока не бьюсь не могу поставить сабж(((
роутер WL500g. PremiumV2 прошивка 1.9.2.7
вроде делаю все по инструкции а процессы
280 admin 4384 S /opt/bin/php-fcgi
284 admin 6568 S /opt/bin/php-fcgi
285 admin 6296 S /opt/bin/php-fcgi
не поевляються(((
Попробуй сделать вот это
lighttpd -f /opt/etc/lighttpd/lighttpd.conf Если процессы появились, то попробуй запусти
touch /usr/local/sbin/post-boot
touch /usr/local/sbin/post-firewall
touch /usr/local/sbin/post-mount
touch /usr/local/sbin/pre-mount
touch /usr/local/sbin/pre-shutdown
chmod +x /usr/local/sbin/*
ну и затем перегрузись конечно
flashfs save && flashfs commit && flashfs enable && reboot
здравствуйте. проблема вот какая
пытаюсь сделать lighttpd + ssl + авторизация на папку rutorrent по паролю
вроде все сделал по инструкции, но при заходе по ссылке https://172.16.0.254/rutorrent lighttpd "зависает"
т.е. до того как зайти по ссылке сервер работает и отдает страницы после захода сервер не отвечает
в логах пусто (т.е. просто сообщение что сервер стартонул и все больше не чего нету)
помогает только рестарт сервиса lighttpd
конфиг приложил (уже не актуально)
помогите пожалуйста, готов предоставить мак. инфу)
заранее спасибо
проверил отдельно авторизацию (без ssl), работает
блин, из-за чего же все таки ssl виснит? ((
п.с. порт 443 открыт
iptables -A INPUT -p tcp --syn --dport 443 -j ACCEPT
п.п.с. файл S80lighttpd стандартный, не чего не трогал
да, забыл написать версия lighttpd 1.4.30
да, извиняюсь, что я не редактировал свои сообщения, при добавлении информации,
просто целый день потратил на это и задолбался выяснять в чем проблема(
собственно вот ответ - http://redmine.lighttpd.net/issues/2377
надо ждать версию 1.4.31 либо накладывать патч
ryzhov_al
26-12-2011, 06:52
да, забыл написать версия lighttpd 1.4.30Я думал, что речь о версиях из пакетов Optware/OpenWRT. По глюку lighttpd 1.4.30 же надеялся, что вы заглянёте в соседнюю ветку (http://www.wl500g.info/showpost.php?p=242383&postcount=126).
Johnny_Mnemonic
03-05-2012, 16:35
Привет всем. Установил lighttpd версии 1.4.30.
Создал pem файл командой openssl req -new -x509 -keyout server.pem -out server.pem -days 365 -nodes
В конфиге раскомментил только
ssl.engine = "enable"
ssl.pemfile = "server.pem"
lidghttpd стартует нормально, но стоит только браузером обратиться на порт по умолчанию 8081, демон падает без каких либо записей в логах.
Если lighttpd запускать с ключом -D то при падении в консоль вываливается ошибка segmentation fault.
На оффициальном сайте нашел описание похожего бага http://redmine.lighttpd.net/issues/2385.
Кто нибудь сталкивался с такими проблемами? Какие варианты решения можо придумать?
Моя версия -
lighttpd/1.4.30 (ssl) - a light and fast webserver
Build-Date: Feb 23 2012 21:22:51
ryzhov_al
03-05-2012, 16:58
Кто нибудь сталкивался с такими проблемами? Какие варианты решения можо придумать?
$ grep cipher /opt/etc/lighttpd/lighttpd.conf
ssl.cipher-list = "ECDHE-RSA-AES256-SHA384:AES256-SHA256:RC4-SHA:RC4:HIGH:!MD5:!aNULL:!EDH:!AESGCM"
Johnny_Mnemonic
03-05-2012, 17:37
$ grep cipher /opt/etc/lighttpd/lighttpd.conf
ssl.cipher-list = "ECDHE-RSA-AES256-SHA384:AES256-SHA256:RC4-SHA:RC4:HIGH:!MD5:!aNULL:!EDH:!AESGCM"
Добавил вышеуказанную строку в lighttpd.conf и к сожалению ничего не изменлось :-(. Все равно падает.
ssl.engine = "enable"
ssl.pemfile = "server.pem"
ssl.cipher-list = "ECDHE-RSA-AES256-SHA384:AES256-SHA256:RC4-SHA:RC4:HIGH:!MD5:!aNULL:!EDH:!AESGCM"
Как я понял эта строка указывает какие методы шифрования использовать а какие нет.
здравствуйте. проблема вот какая
пытаюсь сделать lighttpd + ssl + авторизация на папку rutorrent по паролю
да, забыл написать версия lighttpd 1.4.30
Подтверждаю ошибку связки lighttpd 1.4.30+ssl
см. ссылку http://wl500g.info/showthread.php?9091-%C8%ED%F1%F2%E0%EB%FF%F6%E8%FF-%E8-%ED%E0%F1%F2%F0%EE%E9%EA%E0-lighttpd
ryzhov_al
03-05-2012, 19:46
Не подтверждаю ошибку связки lighttpd 1.4.30+ssl.
lighttpd - последний из репозитория Entware:
$ lighttpd -V
lighttpd/1.4.30 (ssl) - a light and fast webserver
Build-Date: May 2 2012 23:27:29
...
Features:
...
+ SSL Support
...
$ opkg list_installed | grep libopenssl
libopenssl - 1.0.1a-1
$ cat /opt/etc/lighttpd/conf.d/30-auth.conf
server.modules += ( "mod_auth" )
auth.backend = "htdigest"
auth.backend.htdigest.userfile = "/opt/etc/lighttpd/.passwd"
auth.require = (
"/rutorrent/" =>
(
"method" => "digest",
"realm" => "restricted_area", #заголовок окна запроса пароля
"require" => "valid-user"
)
)
$ grep ssl /opt/etc/lighttpd/lighttpd.conf
ssl.engine = "enable"
ssl.pemfile = "/opt/etc/lighttpd/lighty.pem"
ssl.cipher-list = "ECDHE-RSA-AES256-SHA384:AES256-SHA256:RC4-SHA:RC4:HIGH:!MD5:!aNULL:!EDH:!AESGCM"
где /opt/etc/lighttpd/lighty.pem - сертификат, созданный утилитой htdigest из состава apache. При сборке lighty 1.4.30 никакие патчи не применялись (https://dev.openwrt.org/browser/packages/net/lighttpd/).
Johnny_Mnemonic
06-05-2012, 15:08
$ grep cipher /opt/etc/lighttpd/lighttpd.conf
ssl.cipher-list = "ECDHE-RSA-AES256-SHA384:AES256-SHA256:RC4-SHA:RC4:HIGH:!MD5:!aNULL:!EDH:!AESGCM"
Спасибо, разобрался с проблемой. Оказалось что старая сборка lighttpd 1.4.30 была от 23 февраля 12 года.
Плюс еще пришлось перешить роутер прошивкой с ядром 2.6 чтобы перейти на репозиторий entware.
В новом репозитории сборка lighttpd 1.4.30 от 2 го мая 12 года.
Не подтверждаю ошибку связки lighttpd 1.4.30+ssl. lighttpd - последний из репозитория Entware:
При сборке lighty 1.4.30 никакие патчи не применялись (https://dev.openwrt.org/browser/packages/net/lighttpd/).
Спасибо разобрался. Мое решение в этой ветке.
устал ломать голову над задачей получить доступ к лайту по https (получение простого сертификата с севера, без всяких паролей/логинов и т.д.) :confused:
шаманю:
правлю конф лайта
#### SSL engine
ssl.engine = "enable"
ssl.pemfile = "/opt/etc/lighttpd/ssl/lighttpd.pem"
создаю директорию для этого мусора
mkdir /opt/etc/lighttpd/ssl
прусь туда
cd /opt/etc/lighttpd/ssl
дальше начинаю плыть, но геню ключ как-то :p
openssl req -newkey rsa:2048 -keyout lighttpd.pem -out lighttpd.pem -days 3650 -nodes
всё ок - ключ есть, ребучу сервак
/opt/etc/init.d/S80lighttpd stop
/opt/etc/init.d/S80lighttpd start
и пустота... :mad:
перерыл инет, но везде или как у меня по простому или парой мега жёстких способов с вводом паролей/ключей и пр. при подключении. все варианты должны быть рабочими, но вот не фурычит раза :(
Есть такая вот статья - Создание SSL прокси при помощи lighttpd (http://www.opennet.ru/tips/info/1955.shtml). И аналогичная задача:
https-запрос "с мира" прилетает на -->роутер с lighttpd, который распределяет--> на IIS сервер внутри сети (192.168.0.3:80 - st1.lol.com) или оставляет на lighttpd сервере на самого роутера (192.168.0.1:8008 - st2.lpl.com)
Испробовал все возможные способы, только на это не ругается при старте сервера:
#$HTTP["host"] =~ "st2.lpl.com" {
proxy.server = (
"" => (
("lpl" => (
"host" => "127.0.0.1",
"port" => 8008,
"fix-redirects" => 1
)
)
)
)
}
$HTTP["host"] =~ "st1.lol.com" {
proxy.server = (
"" => (
("lol" => (
"host" => "192.168.0.3",
"port" => 80,
"fix-redirects" => 1
)
)
)
)
}
Но в логах пишет:
2012-09-20 13:20:13: (mod_proxy.c.305) missing key (string): proxy.server 0 host
2012-09-20 13:20:13: (server.c.945) Configuration of plugins failed. Going down.
:confused: