Re: сборка с ssl

Nikolay Grebnev nick на algen.spb.ru
Вс Дек 13 11:00:25 MSK 2009


00000000  2d 2d 2d 2d 2d 42 45 47  49 4e 20 43 45 52 54 49  |-----BEGIN
CERTI|
00000010  46 49 43 41 54 45 2d 2d  2d 2d 2d 0a 4d 49 49 46
|FICATE-----.MIIF|
00000020  51 44 43 43 42 43 69 67  41 77 49 42 41 67 49 51
|QDCCBCigAwIBAgIQ|
00000030  62 67 6f 32 4f 77 59 43  6b 51 34 2f 55 70 38 2b
|bgo2OwYCkQ4/Up8+|
00000040  6f 30 52 62 46 54 41 4e  42 67 6b 71 68 6b 69 47
|o0RbFTANBgkqhkiG|
00000050  39 77 30 42 41 51 55 46  41 44 42 6c 0a 2d 2d 0a
|9w0BAQUFADBl.--.|
00000060  51 34 7a 32 61 67 3d 3d  0a 2d 2d 2d 2d 2d 45 4e
|Q4z2ag==.-----EN|
00000070  44 20 43 45 52 54 49 46  49 43 41 54 45 2d 2d 2d  |D
CERTIFICATE---|
00000080  2d 2d 2d 2d 2d 2d 2d 42  45 47 49 4e 20 43 45 52  |-------BEGIN
CER|
00000090  54 49 46 49 43 41 54 45  2d 2d 2d 2d 2d 0a 4d 49
|TIFICATE-----.MI|
000000a0  49 45 78 7a 43 43 41 36  2b 67 41 77 49 42 41 67
|IExzCCA6+gAwIBAg|
000000b0  49 51 44 32 38 51 32 66  73 4d 79 43 70 4a 55 62
|IQD28Q2fsMyCpJUb|
000000c0  4b 42 34 7a 38 64 31 6a  41 4e 42 67 6b 71 68 6b
|KB4z8d1jANBgkqhk|
000000d0  69 47 39 77 30 42 41 51  55 46 41 44 43 42 0a 2d
|iG9w0BAQUFADCB.-|
000000e0  2d 0a 2d 2d 2d 2d 2d 45  4e 44 20 43 45 52 54 49  |-.-----END
CERTI|
000000f0  46 49 43 41 54 45 2d 2d  2d 2d 2d 0a 2d 2d 2d 2d
|FICATE-----.----|
00000100  2d 42 45 47 49 4e 20 43  45 52 54 49 46 49 43 41  |-BEGIN
CERTIFICA|
00000110  54 45 2d 2d 2d 2d 2d 0a  4d 49 49 45 68 6a 43 43
|TE-----.MIIEhjCC|
00000120  41 32 36 67 41 77 49 42  41 67 49 51 55 6b 49 47
|A26gAwIBAgIQUkIG|
00000130  53 6b 38 33 2f 6b 4e 70  53 48 71 57 5a 2f 39 64
|Sk83/kNpSHqWZ/9d|
00000140  4a 7a 41 4e 42 67 6b 71  68 6b 69 47 39 77 30 42
|JzANBgkqhkiG9w0B|
00000150  41 51 55 46 41 44 42 76  0a                       |AQUFADBv.|
00000159


2009/12/13 Igor Sysoev <igor at sysoev.ru>

> On Sun, Dec 13, 2009 at 12:53:39AM +0300, Maxim Dounin wrote:
>
> > 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
>
> Да, в 0.7 собранный openssl ставится в openssl-0.9.8l/openssl. Из-за того,
> что "make clean" потом его не может удалить, в 0.8.17 openssl ставится в
> 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).
>
> Что показывает
> grep -1 'BEGIN CERTIFICATE' /usr/local/nginx/conf/srv.pem | hexdump -C
>
>
> --
> Игорь Сысоев
> http://sysoev.ru
>
> _______________________________________________
> nginx-ru mailing list
> nginx-ru at nginx.org
> http://nginx.org/mailman/listinfo/nginx-ru
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://nginx.org/pipermail/nginx-ru/attachments/20091213/5adb0e77/attachment-0001.html>


Подробная информация о списке рассылки nginx-ru