ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: сборка с ssl



Hello!

On Sat, Dec 12, 2009 at 11:57:05PM +0300, Nikolay Grebnev wrote:

> Добрый день.
> 
> Чего-то напрочь не удается собрать с поддержкой ssl нормально.
> 
> OS - CentOS 5.2 (вроде как - или 5.1)
> 
> При сборке с базовыми либами ругается
>         objs/ngx_modules.o >         -lcrypt -lpcre -lssl -lcrypto -ldl -lz
> objs/src/http/ngx_http_request.o: In function `ngx_http_ssl_servername':
> ngx_http_request.c:(.text+0xc85): undefined reference to
> `SSL_get_servername'
> ngx_http_request.c:(.text+0xd76): undefined reference to `SSL_set_SSL_CTX'
> collect2: выполнение ld завершилось с кодом возврата 1
> make[1]: *** [objs/nginx] Ошибка 1
> make[1]: Leaving directory `/root/nginx-ssl/nginx-0.8.29'
> make: *** [build] Ошибка 2

Вероятно, библиотека openssl в системе и её заголовочные файлы 
несинхронизированы между собой.  Не знаю как в центосе, по вообще 
в мире линуксов популярна идея делать отдельными пакетам openssl и 
openssl-dev, и их рассинхронизация обычно доставляет.

> При сборке с внешним ssl -
> ./configure --with-openssl=/root/nginx-ssl/openssl-0.9.8l
> --with-http_ssl_module
> 
> # make -j 5
> make -f objs/Makefile
> make[1]: Entering directory `/root/nginx-ssl/nginx-0.8.29'
> cd /root/nginx-ssl/openssl-0.9.8l >         && make clean >         && ./config --prefix=/root/nginx-ssl/openssl-0.9.8l/.openssl
> no-shared  no-threads >         && make >         && make install
> make[2]: Entering directory `/root/nginx-ssl/openssl-0.9.8l'
> rm -f *.map *.so *.so.* *.dll engines/*.so engines/*.dll *.a engines/*.a
> */lib */*/lib
> rm: невозможно удалить `openssl/lib': Это каталог
> make[2]: *** [libclean] Ошибка 1

Не отрабатывает 'make clean' в openssl.  Судя по всему - не 
отрабатывает из-за того, что с этими же исходниками собирали nginx 
0.7.*.

Решение:

rm -r /root/nginx-ssl/openssl-0.9.8l/openssl

> make[2]: Leaving directory `/root/nginx-ssl/openssl-0.9.8l'
> make[1]: *** [/root/nginx-ssl/openssl-0.9.8l/.openssl/include/openssl/ssl.h]
> Ошибка 2
> make[1]: Leaving directory `/root/nginx-ssl/nginx-0.8.29'
> make: *** [build] Ошибка 2
> 
> 
> Это был 0.8.29.
> =====================
> 
> 0.7.64 собирается с собственным ssl (./configure
> --with-openssl=/root/nginx-ssl/openssl-0.9.8l --with-http_ssl_module)
> # /usr/local/nginx/sbin/nginx -V
> nginx version: nginx/0.7.64
> TLS SNI support enabled
> configure arguments: --with-openssl=/root/nginx-ssl/openssl-0.9.8l
> --with-http_ssl_module
> 
> но не может запуститься
> # /usr/local/nginx/sbin/nginx -t -c conf/nginx.conf-ssl
> [emerg]: SSL_CTX_use_certificate_chain_file("/usr/local/nginx/conf/srv.pem")
> failed (SSL: error:0906D066:PEM routines:PEM_read_bio:bad end line
> error:140DC009:SSL routines:SSL_CTX_use_certificate_chain_file:PEM lib)
> configuration file /usr/local/nginx/conf/nginx.conf-ssl test failed
> 
> 
> Жутко умаялся, посоветуйте плиз что делать.
> 
> Да, ssl самый простенький от globessl.
> srv.pem собирался из 2 файлов - crt и ca-bundle

Судя по ругани от openssl - в srv.pem что-то не так.  К такой 
ругане должна приводить ошибка в строке

-----END CERTIFICATE-----

например - отсутствие перевода строки в конце, или наличие его в 
неправильном виде (CR LF вместо LF).

Maxim Dounin

_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://nginx.org/mailman/listinfo/nginx-ru


 




Copyright © Lexa Software, 1996-2009.