107

I was trying to install node.js and found OpenSSL support missing during ./configure.

How can I fix it? Is it a mandatory step? Would the --without-ssl option fix the problem?

# ./configure

Checking for gcc                         : ok
Checking for library dl                  : not found
Checking for openssl                     : not found
Checking for function SSL_library_init   : not found
Checking for header openssl/crypto.h     : not found
/home/ec2-user/node-v0.6.6/wscript:374: error: Could not autodetect OpenSSL 
                                               support.

Make sure OpenSSL development packages are installed. Use configure --without-ssl 
to disable this message.
1
  • For me in my Debian 9 (ubuntu) : apt update && apt install -y openssl && apt install -y libc6 && apt install -y libssl1.1 && apt install -y ca-certificates and then ./configure
    – FranklinA
    Dec 12, 2019 at 15:36

6 Answers 6

185

Yes, it's a mandatory step. You cannot remove OpenSSL from a program uses it, the same way you couldn't remove random engine parts from a car.

The OpenSSL library is usually already installed, but you have to install the header files. Depending on your Linux distribution, you'll need these packages:

  • Red Hat, Fedora, CentOS - openssl-devel
  • Debian, Ubuntu - libssl-dev
  • Arch - openssl

Technically one could replace OpenSSL with, say, NSS, but that's not the point here.

4
  • 2
    thanks a lot, i installed header by yum install openssl-devel
    – P K
    Dec 27, 2011 at 11:00
  • Ah makes sense now. This is needed for wget to ./configure with ssl as well.
    – dhaupin
    Jul 12, 2016 at 18:48
  • 4
    After using grawitys answer while trying to configure squid (3.5.26) with openssl I've stumbled onto some weird side effect: Unless you have "pkg-config" installed, the library "openssl" and "libssl-dev" gets treated as if it was missing. So I had to install pkg-config as well. It is used in the configure script (around line 23362) to find the path and existence of this package. On debian it is installed by: > apt-get install pkg-config Jun 30, 2017 at 8:22
  • @MihovilBubnjar got an error "configure: error: library 'ssl' is required for OpenSSL" when tried to build squid with ssl, install pkg-config fixed this error Oct 30, 2021 at 11:05
11

debian:

apt-get install libssl-dev

apt-get install linux-headers-$(uname -r)
5
  • 7
    How and why does this help fix the problem? Oct 7, 2014 at 18:56
  • 1
    @KevinPanko libssl-dev
    – user187717
    Oct 20, 2014 at 19:28
  • @KevinPanko this works I can confirm. Albert's answer is correct. Mar 7, 2015 at 13:20
  • 2
    @JeffAtwood I did not doubt it, but it helps when an answer explains why a command is needed. Mar 8, 2015 at 15:38
  • this didn't solved for me, also configure --without-ssl gave me that it is a required package
    – Fnr
    Sep 7, 2017 at 3:40
5

No, it isn't.

You can still compile nodejs with ./configure --without-ssl

2

This is showing up on Google for a problem that may come up with some installations - possibly links-g. I had the problem on Archlinux with links-utf8 and links-g-directfb.

Likely presentation:

checking OPENSSL_CFLAGS... 
checking OPENSSL_LIBS... -lssl -lcrypto 
checking for OpenSSL... no
configure: error: OpenSSL not found

Try this:

sed -i "/ac_cpp=/s/\$CPPFLAGS/\$CPPFLAGS -O2/" configure

Using this command before your ./configure step should fix it.

1
  • 2
    why is that patch fixing the problem?
    – user237419
    Oct 1, 2013 at 16:24
2

You must install openssl-devel in your OS with:

yum install openssl-devel.x86_64

./configure --with-tls

make install

0

If you don't succeed with libssl-dev only, over Debian distro, you could include both SSL Library versions same time

apt-get install libssl-dev libssl1.0

Not the answer you're looking for? Browse other questions tagged or ask your own question.