четверг, 5 февраля 2009 г.

Linux // Настройка GoAhead Web Server для работы c OpenSSL

На самом деле прошу не смеяться - может кому-то данный опыт тоже пригодиться.
И сохранит 4 часа непрерывного ковыряния в Гуле и коде (да, он опенсоурсный, но почитайте лицензию прежде чем использовать).

"Да нах он нужен! Ведь есть восхитительнейшие Apache или еще что-нибудь" - скажете вы и, по своему, будете правы. Однако, спешу напомнить, что жизнь непростая штука и вы не всегда играете по своим правилам. Короче, в сторону лирику...

Задача примерна такая - есть маломощное вычислительное устройство и на нем уже крутиться данный сервер. Надо криптануть трафик от и до с помощью SSL.

Все опции по криптовальным пакетам есть в
<место куда вы распаковали исходники>/LINUX/Makefile

И надо сказать даже у апача столько нет ;-)
- бесплатная OpenSSL
- платная BSAFE от RSA
- платная NanoSSL от Mocana

Понятно, что одним из рассматриваемых вариантов становиться OpenSSL (нет еще не победитель, но как бы уже доступен на попробовать).

Что собственно делаем для сборки GoAhead Web server (далее GAWS).

Кросскомпилером собираем OpenSSL (отдельная история - если кто захочет могу рассказать отдельно). Есть правда надежда что он у вас уже собранный. Я делаю допущение что он у вас уже есть :-) C каким-нибудь тулкитом для встроенного линукса.

Редактируем вышеуказанный Makefile следующим образом (согласно английским комментариям в файле)

SSLPATCHFILE = ../websSSL.o

# Here I put top location of openssl
# it could be anywhere for example point to location of target platform
OPENSSL_ROOT=/opt/eldk//usr

SSLINC = $(OPENSSL_ROOT)/include/openssl
# here could be either
# static libs in following form
# $(OPENSSL_ROOT)/lib/libssl.a $(OPENSSL_ROOT)/lib/libcrypto.a
# or
# dynamic in following form
# -L$(OPENSSL_ROOT)/lib -lssl -lcrypto
# or both forms for example I'we was forced to add 1 satatic from krb5 set ;-)
SSLLIB = -L$(OPENSSL_ROOT)/lib -lssl -lcrypto
SSLSW = -DWEBS_SSL_SUPPORT -I$(SSLINC) -DOPENSSL


Вот собственно и все.
Пробуем собрать и играемся сими опциями до удачного завершения билда и линковки.
Обычно нужно какую нибудь библиотечку добавить, которой не хватает :-)

Все собралось. Получили исполнимый файл. Нужны сертификаты.

Процедура такова - реальный сертификат нам на тестировании не нужен.
Посему делаем самодельные.

Сервер будет их искать в (там где у него жестко прописано - см. исходный код в файле websSSL.c - можете, кстати, и поменять)

1) там где он стартанул - должен быть файл server.pem
2) там где он стартанул - должна быть директория certs с двумя файлами в ней cacert.pem & cakey.pem

делаем их так

1) Генерим ключ и x509 сертификат
$openssl req -x509 -newkey rsa:2048 -days 1024 \
-keyout server-key.pem -out server-cert.pem
Вас опросит по английски заполнить поля вашего сертификата
Не забудте на вопрос
Common Name (eg, YOUR name) []:localhost
указать имя вашего хоста - в моем примере - localhost

2) Снимаем пароль с ключа, который вы введете на первом шаге на один из вопросов
$openssl rsa -in server-key.pem -out server-key-nopassword.pem
3) Склеиваем два файла в один (он будет лежать откуда стартует исполнимый файл)
$cat server-key-nopassword.pem server-cert.pem > server.pem
4) Ну и собственно перемещаем или копируем их каждого на свое место
server.pem      -> /server.pem
server-cert.pem -> /certs/cacert.pem
server-key.pem -> /certs/cakey.pem

Проверяем работоспособность.

Если вдруг не заработает - берите дебаггер и вперед.

Удачи.

среда, 4 февраля 2009 г.

Ужасы нашего городка...

1.
С ужасом наблюдаю по местному американскому телевиденью (наткнулся на какую-то местную калифорнийскую передачу, хотя может и не калифорнийскую, но то что американскую - 100%) историю из жизни бедных американских женьщин (о которых не скажешь fat free). Смысл всего ужаса в том что за 350-х (сверху не ограничено) паундовую (простите за мой французский - 1 lb ~ 0.453 кг) тетку неделю "мучает" какой-то тощий мужичек. Смысл "мучений" в том что заставляет их заниматься физкультурой. Потом под звуки марша (что-то такое бравурное) их взвешивают и - о чудо! - кто-то лишается 2-10 фунтов, видимо тот, кто действительно работает. Некоторые плачут (тут марш обрывается) - 0 фунтов за неделю. Им тощий мужик и телевизионного вида тетка (худая) говорят - Don't give up! (типа - не сдавайся!) - будем с тобой продолжать работать. Все выглядит очень неприятно - но шоу должно продолжаться!

2.
Вчера проснулся в холодном поту - а вдруг GPS приемник Сергея (моего напарника по коммандировке) выйдет из строя? Я полагаю что в лесу быстрее найду местоположение, чем в Калифорнийских развязках.

3.
В ридер упало сообщение из блога на который я подписан. Подбор фотографий неплохой. Название печальное. У русского программиста здесь несложилось, после 10 лет совместной жизни. Где-то подобное уже читал (а он похоже нет) - всех русских программистов здесь бросают жены. А ведь он сейчас тоже в Калифорнии...

понедельник, 2 февраля 2009 г.

В светлом будующем

Сегодня съездили на мост через залив, в простанородье именуемый Golden Gate Bridge.
Насколько я помню, обещали такой же сделать и во Владивостоке к саммиту.
Так что, считайте я побывал в будующем и посмотрел на будующий Владивостоцкий мост до острова Русский.
Одна особенность, замеченая мной заключается в том, что на мост в одну сторону заезжаешь бесплатно, но чтобы вернуться надо заплатить 6 долларов. Данную особенность рекомендую применить и во Владивостоке - на остров бесплатно, оттуда - за деньги ;-)

суббота, 31 января 2009 г.

город в стиле диско...

Прилетел 29 января в Сан-Франциско, в коммандировку.
Пока не разобрался что к чему.
Основные изменения - я попал из зимы во Владивостоцкую осень (сентябрь-октябрь).
Трава и пальмы зеленые.
При движении на машине попадаются вывески Palo Alto, Silicon Valley, San Jose...
Что-то знакомое, о чем читал в детстве :)
Из гигантских оффисов пока видел на ладан дышаший Yahoo!
Остальное будем рассматривать по ходу течения времени...
Следите за аннонсами.

четверг, 20 ноября 2008 г.

ann // netbeans 6.5

Вышел новая версия. Что нового, можно прочитать здесь.

Честно признаться, хоть компания Sun и придумала java, что-то она не смогла привлечь большого числа крупных сторонииков к платформе netbeans, как это сделала IBM к eclipse.

Архитектура, видимо, неудачная? Или маркетинг?

среда, 19 ноября 2008 г.

Touch typing // Dvorak layout

Никак не мог заставить себя использовать слепой метод печати - всегода тянуло посмотреть на клавиатуру, что я обычно и делал (зная, однако, что нехорошо подсматривать).

Читая заметку Джэффа We Are Typists First, Programmers Second, решил переключится на Дворак раскладку.

Этим убиваю двух зайцев:
1) изучение продуктивной раскладки (если не обманывают Фил и Густаво)
2) отучиваю себя смотреть на клавиатуру при печати (смысла в этом все равно нет, поскольку надписи на qwerty клавиатуре все равно не совпадают).

p.s.
Хочу еще и клавиатуру как у Scott-а :-)

пятница, 5 сентября 2008 г.

ANN // Sun VirtualBox 2.0.0 released

Вчера, компания Sun анонсировала выход новой версии VirtualBox.

Из новшеств, отмеченных мной:
- поддержка 64-битных guest-ов, правда только на 64-х битных хостах
- Переход UI на QT 4 (стало выглядеть очень симпатично)

Полный список изменений здесь.

На вопрос, зачем все это?
Отвечу так - это менше чем VMware (меньше качать из интернета), бесплатнее (ну конечно!!! :) ), ну а по функциональности ничем ей не уступает.