httpd 빌드에서 Openssl을 찾을 수 없습니다.

httpd 빌드에서 Openssl을 찾을 수 없습니다.

소스에서 Apache를 다시 빌드하려고 하는데 이전에 발생하지 않은 문제가 발생했습니다.

나는 과거에 여러 번 소스에서 Apache 버전 2.4.57을 빌드했으며 make이 단계에서는 문제가 없었습니다.

나는 아파치를 잡았습니다:

wget https://archive.apache.org/dist/httpd/httpd-2.4.57.tar.gz

구성하세요:

./configure --prefix=/path/to/server --with-ssl=/opt/openssl/bin

그리고 다음을 빌드해 보세요:

make

하지만 다음 오류가 발생합니다.

/usr/share/apr-1.0/build/libtool --silent --mode=link x86_64-linux-gnu-gcc  -pthread    \
         -o ab  ab.lo       /usr/lib/x86_64-linux-gnu/libaprutil-1.la /usr/lib/x86_64-linux-gnu/libapr-1.la -lm -lssl -lcrypto
/usr/bin/ld: ab.o: in function `ssl_print_cert_info':
ab.c:(.text+0xa94): undefined reference to `EVP_PKEY_get_bits'
/usr/bin/ld: ab.o: in function `ssl_print_info':
ab.c:(.text+0xc6c): undefined reference to `SSL_get1_peer_certificate'
/usr/bin/ld: ab.o: in function `ssl_proceed_handshake':
ab.c:(.text+0xe0c): undefined reference to `SSL_get1_peer_certificate'
/usr/bin/ld: ab.c:(.text+0xe2b): undefined reference to `EVP_PKEY_get_bits'
/usr/bin/ld: ab.c:(.text+0xefc): undefined reference to `EVP_PKEY_get_id'
/usr/bin/ld: ab.c:(.text+0xf2d): undefined reference to `EVP_PKEY_get_bits'
/usr/bin/ld: ab.c:(.text+0xf62): undefined reference to `EVP_PKEY_get_bits'
/usr/bin/ld: ab.c:(.text+0xff5): undefined reference to `EVP_PKEY_get_bits'
/usr/bin/ld: ab.c:(.text+0x102f): undefined reference to `EVP_PKEY_get_bits'
/usr/bin/ld: ab.c:(.text+0x103d): undefined reference to `EVP_PKEY_get_id'
collect2: error: ld returned 1 exit status
make[2]: *** [Makefile:73: ab] Error 1
make[2]: Leaving directory '/srv/apache/httpd-2.4.57/support'
make[1]: *** [/srv/apache/httpd-2.4.57/build/rules.mk:75: all-recursive] Error 1
make[1]: Leaving directory '/srv/apache/httpd-2.4.57/support'
make: *** [/srv/apache/httpd-2.4.57/build/rules.mk:75: all-recursive] Error 1

해결책을 시도해 보세요

최근에 많이 플레이했는데 postfix버전 중 하나에 문제가 발생했습니다 openssl. 이 문제를 해결하려고 시도하는 동안 시스템 라이브러리를 변경한 것 같으며 openssl이제 Apache가 빌드되지 않습니다.

문제를 해결하려고 시도하는 동안 Openssl내 openssl 버전이 Apache 버전 2.4.57에 비해 너무 현대적(3.2.1)이라는 것이 문제일 수 있다고 의심했습니다. 따라서 이 게시물에 따르면 다음과 같습니다. https://askubuntu.com/questions/1126893/how-to-install-openssl-1-1-1-and-libssl-package 1.1.1 버전으로 다운그레이드했습니다. 이 버전으로 빌드하도록 Apache를 구성했습니다. 불행히도 행운이 없습니다.

온라인으로 검색해도 이 특정 문제에 대한 해결책을 찾을 수 없습니다. 또한 OpenSSL 아파치에 필요한 버전에 대한 참조를 찾는 데 어려움을 겪고 있습니다. 또는 이러한 라이브러리를 사용하지 않고 빌드하도록 아파치를 구성할 수 있는지도 확인하는 데 어려움을 겪고 있습니다. 어쩌면 ./configure깃발일까요? SSL 지원 없이 구축해도 괜찮습니다.

누구든지 httpd의 필수 버전에 대한 특정 솔루션이나 가능한 힌트를 통해 이 상황을 밝힐 수 있다면 감사하겠습니다.

고쳐 쓰다

나는 의견의 조언을 따르고 위에 언급된 openssl 버전 3.0.2에 대한 stackoverflow 게시물에 나열된 Openssl 지침을 반복했습니다. 을 실행할 때 make test일부 테스트가 실패합니다.

Test Summary Report
-------------------
25-test_verify.t                 (Wstat: 512 Tests: 160 Failed: 2)
  Failed tests:  157-158
  Non-zero exit status: 2
80-test_cms.t                    (Wstat: 1792 Tests: 12 Failed: 7)
  Failed tests:  2-6, 9, 12
  Non-zero exit status: 7
80-test_ssl_new.t                (Wstat: 256 Tests: 30 Failed: 1)
  Failed test:  12
  Non-zero exit status: 1
Files=242, Tests=3284, 433 wallclock secs ( 8.33 usr  0.51 sys + 391.95 cusr 46.46 csys = 447.25 CPU)
Result: FAIL

이러한 테스트 오류에도 불구하고 계속해서 Openssl을 설치했습니다. 아파치를 구성할 때:

./configure --with-ssl=/opt/openssl

오류 없음 - 문제가 해결되었습니다.

이러한 오류가 무엇을 의미하는지 명확하지 않습니다 make test. 누구든지 이에 대해 알려주시면 감사하겠습니다.

의견과 실제로 확인된 @steeldriver 덕분에 httpd-2.4.57을 openssl-3.0.2와 함께 사용할 수 있다는 것을 알고 있습니다. httpd에 대한 종속성 요구 사항을 찾는 방법이 명확하지 않습니다. 누구든지 나를 다시 올바른 방향으로 안내해 주시면 매우 감사하겠습니다.

관련 정보