Opened 12 years ago

Closed 12 years ago

Last modified 12 years ago

#169 closed defect (invalid)

Can't Make Nginx since upgrading to OpenSSL 1.0.1

Reported by: Ted Phillips Owned by: somebody
Priority: blocker Milestone:
Component: nginx-core Version: 1.3.x
Keywords: Cc:
uname -a:
nginx -V: nginx version: nginx/1.1.19
built by gcc 4.1.2 20080704 (Red Hat 4.1.2-52)
TLS SNI support disabled
configure arguments: --sbin-path=/sbin --with-http_ssl_module


Earlier today I upgraded my OpenSSL from 0.9.9 to 1.0.1c
# openssl version
shows the new version number:
# OpenSSL 1.0.1c 10 May 2012

I am currently on Nginx 1.1.19 built against OpenSSL 0.9.9. I have performed a number of successful upgrades to Nginx (started on 0.8.43).

When attempting to install 1.3.0 or 1.2.0, I use my normal
# ./configure --sbin-path=/sbin --with-http_ssl_module
# make

And get the following:
# ...
# objs/src/http/modules/ngx_http_upstream_ip_hash_module.o \
# objs/src/http/modules/ngx_http_upstream_keepalive_module.o \
# objs/ngx_modules.o \
# -lpthread -lcrypt -lpcre -lssl -lcrypto -ldl -lz
# objs/src/event/ngx_event_openssl.o: In function `ngx_ssl_ecdh_curve':
# /root/nginx-1.3.0/nginx-1.2.0/src/event/ngx_event_openssl.c:504: undefined reference to `EC_KEY_new_by_curve_name'
# /root/nginx-1.3.0/nginx-1.2.0/src/event/ngx_event_openssl.c:515: undefined reference to `EC_KEY_free'
# objs/src/http/ngx_http_request.o: In function `ngx_http_ssl_servername':
# /root/nginx-1.3.0/nginx-1.2.0/src/http/ngx_http_request.c:644: undefined reference to `SSL_get_servername'
# /root/nginx-1.3.0/nginx-1.2.0/src/http/ngx_http_request.c:678: undefined reference to `SSL_set_SSL_CTX'
# collect2: ld returned 1 exit status
# make[1]: * [objs/nginx] Error 1
# make[1]: Leaving directory `/root/nginx-1.3.0/nginx-1.2.0'
# make:
* [build] Error 2

Please help, I would like to be able to upgrade in the future.

Change History (2)

comment:1 by Maxim Dounin, 12 years ago

Resolution: invalid
Status: newclosed

From the error shown it looks like you have new openssl headers but still old library in the library path. Make sure to remove old openssl library (and install new library if there are no new available).

comment:2 by Ted Phillips, 12 years ago

Thanks, seems I got so used to Nginx's upgrade process I forgot to move the symlink to the new .so

Note: See TracTickets for help on using tickets.