GmSSL / OpenSSL-Compatibility-Layer

OpenSSL Compatibility Layer of GmSSL
Apache License 2.0
11 stars 2 forks source link

【编译不通过】能否提供GMSSL,OCL和使用的openssl以及nginx的版本匹配信息 #4

Closed PikaByter closed 2 months ago

PikaByter commented 3 months ago

按照readme,在编译1.24.0版本的nginx时,遇到openssl相关报错:

/usr/lib/gcc/x86_64-alpine-linux-musl/9.3.0/../../../../x86_64-alpine-linux-musl/bin/ld: objs/src/event/ngx_event_openssl.o: in function `ngx_ssl_info_callback':
/usr/src/nginx-1.24.0/src/event/ngx_event_openssl.c:1155: undefined reference to `BIO_set_write_buffer_size'
/usr/lib/gcc/x86_64-alpine-linux-musl/9.3.0/../../../../x86_64-alpine-linux-musl/bin/ld: objs/src/event/ngx_event_openssl.o: in function `ngx_ssl_load_certificate':
/usr/src/nginx-1.24.0/src/event/ngx_event_openssl.c:658: undefined reference to `sk_X509_new_null'
/usr/lib/gcc/x86_64-alpine-linux-musl/9.3.0/../../../../x86_64-alpine-linux-musl/bin/ld: /usr/src/nginx-1.24.0/src/event/ngx_event_openssl.c:689: undefined reference to `sk_X509_push'
/usr/lib/gcc/x86_64-alpine-linux-musl/9.3.0/../../../../x86_64-alpine-linux-musl/bin/ld: /usr/src/nginx-1.24.0/src/event/ngx_event_openssl.c:693: undefined reference to `sk_X509_pop_free'
/usr/lib/gcc/x86_64-alpine-linux-musl/9.3.0/../../../../x86_64-alpine-linux-musl/bin/ld: /usr/src/nginx-1.24.0/src/event/ngx_event_openssl.c:672: undefined reference to `ERR_GET_LIB'
/usr/lib/gcc/x86_64-alpine-linux-musl/9.3.0/../../../../x86_64-alpine-linux-musl/bin/ld: /usr/src/nginx-1.24.0/src/event/ngx_event_openssl.c:673: undefined reference to `ERR_GET_REASON'
/usr/lib/gcc/x86_64-alpine-linux-musl/9.3.0/../../../../x86_64-alpine-linux-musl/bin/ld: /usr/src/nginx-1.24.0/src/event/ngx_event_openssl.c:685: undefined reference to `sk_X509_pop_free'
/usr/lib/gcc/x86_64-alpine-linux-musl/9.3.0/../../../../x86_64-alpine-linux-musl/bin/ld: objs/src/event/ngx_event_openssl.o: in function `ngx_ssl_load_certificate_key':
/usr/src/nginx-1.24.0/src/event/ngx_event_openssl.c:805: undefined reference to `BIO_reset'
/usr/lib/gcc/x86_64-alpine-linux-musl/9.3.0/../../../../x86_64-alpine-linux-musl/bin/ld: objs/src/event/ngx_event_openssl.o: in function `ngx_ssl_client_session_cache':
/usr/src/nginx-1.24.0/src/event/ngx_event_openssl.c:1639: undefined reference to `_SSL_CTX_set_session_cache_mode'
/usr/lib/gcc/x86_64-alpine-linux-musl/9.3.0/../../../../x86_64-alpine-linux-musl/bin/ld: objs/src/event/ngx_event_openssl.o: in function `ngx_ssl_get0_session':
/usr/src/nginx-1.24.0/src/event/ngx_event_openssl.c:1744: undefined reference to `SSL_get0_session'
/usr/lib/gcc/x86_64-alpine-linux-musl/9.3.0/../../../../x86_64-alpine-linux-musl/bin/ld: objs/src/event/ngx_event_openssl.o: in function `ngx_ssl_error':
/usr/src/nginx-1.24.0/src/event/ngx_event_openssl.c:3632: undefined reference to `ERR_peek_error_data'
/usr/lib/gcc/x86_64-alpine-linux-musl/9.3.0/../../../../x86_64-alpine-linux-musl/bin/ld: objs/src/event/ngx_event_openssl.o: in function `ngx_ssl_init':
/usr/src/nginx-1.24.0/src/event/ngx_event_openssl.c:189: undefined reference to `SSL_get_ex_new_index'
/usr/lib/gcc/x86_64-alpine-linux-musl/9.3.0/../../../../x86_64-alpine-linux-musl/bin/ld: /usr/src/nginx-1.24.0/src/event/ngx_event_openssl.c:196: undefined reference to `SSL_CTX_get_ex_new_index'
/usr/lib/gcc/x86_64-alpine-linux-musl/9.3.0/../../../../x86_64-alpine-linux-musl/bin/ld: /usr/src/nginx-1.24.0/src/event/ngx_event_openssl.c:204: undefined reference to `SSL_CTX_get_ex_new_index'
/usr/lib/gcc/x86_64-alpine-linux-musl/9.3.0/../../../../x86_64-alpine-linux-musl/bin/ld: /usr/src/nginx-1.24.0/src/event/ngx_event_openssl.c:212: undefined reference to `SSL_CTX_get_ex_new_index'
/usr/lib/gcc/x86_64-alpine-linux-musl/9.3.0/../../../../x86_64-alpine-linux-musl/bin/ld: /usr/src/nginx-1.24.0/src/event/ngx_event_openssl.c:220: undefined reference to `SSL_CTX_get_ex_new_index'
/usr/lib/gcc/x86_64-alpine-linux-musl/9.3.0/../../../../x86_64-alpine-linux-musl/bin/ld: /usr/src/nginx-1.24.0/src/event/ngx_event_openssl.c:227: undefined reference to `SSL_CTX_get_ex_new_index'
/usr/lib/gcc/x86_64-alpine-linux-musl/9.3.0/../../../../x86_64-alpine-linux-musl/bin/ld: /usr/src/nginx-1.24.0/src/event/ngx_event_openssl.c:235: undefined reference to `X509_get_ex_new_index'
/usr/lib/gcc/x86_64-alpine-linux-musl/9.3.0/../../../../x86_64-alpine-linux-musl/bin/ld: /usr/src/nginx-1.24.0/src/event/ngx_event_openssl.c:242: undefined reference to `X509_get_ex_new_index'
/usr/lib/gcc/x86_64-alpine-linux-musl/9.3.0/../../../../x86_64-alpine-linux-musl/bin/ld: /usr/src/nginx-1.24.0/src/event/ngx_event_openssl.c:250: undefined reference to `X509_get_ex_new_index'
/usr/lib/gcc/x86_64-alpine-linux-musl/9.3.0/../../../../x86_64-alpine-linux-musl/bin/ld: objs/src/event/ngx_event_openssl.o: in function `ngx_ssl_create':
/usr/src/nginx-1.24.0/src/event/ngx_event_openssl.c:264: undefined reference to `SSLv23_method'
/usr/lib/gcc/x86_64-alpine-linux-musl/9.3.0/../../../../x86_64-alpine-linux-musl/bin/ld: /usr/src/nginx-1.24.0/src/event/ngx_event_openssl.c:391: undefined reference to `SSL_CTX_set_read_ahead'
/usr/lib/gcc/x86_64-alpine-linux-musl/9.3.0/../../../../x86_64-alpine-linux-musl/bin/ld: objs/src/event/ngx_event_openssl.o: in function `ngx_ssl_certificate':
/usr/src/nginx-1.24.0/src/event/ngx_event_openssl.c:488: undefined reference to `_SSL_CTX_set0_chain'
/usr/lib/gcc/x86_64-alpine-linux-musl/9.3.0/../../../../x86_64-alpine-linux-musl/bin/ld: /usr/src/nginx-1.24.0/src/event/ngx_event_openssl.c:446: undefined reference to `sk_X509_pop_free'
/usr/lib/gcc/x86_64-alpine-linux-musl/9.3.0/../../../../x86_64-alpine-linux-musl/bin/ld: /usr/src/nginx-1.24.0/src/event/ngx_event_openssl.c:455: undefined reference to `sk_X509_pop_free'
/usr/lib/gcc/x86_64-alpine-linux-musl/9.3.0/../../../../x86_64-alpine-linux-musl/bin/ld: /usr/src/nginx-1.24.0/src/event/ngx_event_openssl.c:465: undefined reference to `sk_X509_pop_free'
/usr/lib/gcc/x86_64-alpine-linux-musl/9.3.0/../../../../x86_64-alpine-linux-musl/bin/ld: /usr/src/nginx-1.24.0/src/event/ngx_event_openssl.c:473: undefined reference to `sk_X509_pop_free'
/usr/lib/gcc/x86_64-alpine-linux-musl/9.3.0/../../../../x86_64-alpine-linux-musl/bin/ld: /usr/src/nginx-1.24.0/src/event/ngx_event_openssl.c:491: undefined reference to `sk_X509_pop_free'
/usr/lib/gcc/x86_64-alpine-linux-musl/9.3.0/../../../../x86_64-alpine-linux-musl/bin/ld: objs/src/event/ngx_event_openssl.o:/usr/src/nginx-1.24.0/src/event/ngx_event_openssl.c:567: more undefined references to `sk_X509_pop_free' follow
/usr/lib/gcc/x86_64-alpine-linux-musl/9.3.0/../../../../x86_64-alpine-linux-musl/bin/ld: objs/src/event/ngx_event_openssl.o: in function `ngx_ssl_verify_callback':
/usr/src/nginx-1.24.0/src/event/ngx_event_openssl.c:1056: undefined reference to `OPENSSL_free'
/usr/lib/gcc/x86_64-alpine-linux-musl/9.3.0/../../../../x86_64-alpine-linux-musl/bin/ld: /usr/src/nginx-1.24.0/src/event/ngx_event_openssl.c:1060: undefined reference to `OPENSSL_free'
/usr/lib/gcc/x86_64-alpine-linux-musl/9.3.0/../../../../x86_64-alpine-linux-musl/bin/ld: objs/src/event/ngx_event_openssl.o: in function `ngx_ssl_crl':
/usr/src/nginx-1.24.0/src/event/ngx_event_openssl.c:983: undefined reference to `X509_LOOKUP_load_file'
/usr/lib/gcc/x86_64-alpine-linux-musl/9.3.0/../../../../x86_64-alpine-linux-musl/bin/ld: objs/src/event/ngx_event_openssl.o: in function `ngx_ssl_dhparam':
/usr/src/nginx-1.24.0/src/event/ngx_event_openssl.c:1404: undefined reference to `_SSL_CTX_set_tmp_dh'
/usr/lib/gcc/x86_64-alpine-linux-musl/9.3.0/../../../../x86_64-alpine-linux-musl/bin/ld: objs/src/event/ngx_event_openssl.o: in function `ngx_ssl_ecdh_curve':
/usr/src/nginx-1.24.0/src/event/ngx_event_openssl.c:1486: undefined reference to `_SSL_CTX_set1_group_list'
/usr/lib/gcc/x86_64-alpine-linux-musl/9.3.0/../../../../x86_64-alpine-linux-musl/bin/ld: objs/src/event/ngx_event_openssl.o: in function `ngx_ssl_connection_error':
/usr/src/nginx-1.24.0/src/event/ngx_event_openssl.c:3392: undefined reference to `ERR_GET_REASON'
/usr/lib/gcc/x86_64-alpine-linux-musl/9.3.0/../../../../x86_64-alpine-linux-musl/bin/ld: objs/src/event/ngx_event_openssl.o: in function `ngx_ssl_session_id_context':
/usr/src/nginx-1.24.0/src/event/ngx_event_openssl.c:3820: undefined reference to `sk_X509_NAME_num'
/usr/lib/gcc/x86_64-alpine-linux-musl/9.3.0/../../../../x86_64-alpine-linux-musl/bin/ld: /usr/src/nginx-1.24.0/src/event/ngx_event_openssl.c:3823: undefined reference to `sk_X509_NAME_value'
/usr/lib/gcc/x86_64-alpine-linux-musl/9.3.0/../../../../x86_64-alpine-linux-musl/bin/ld: objs/src/event/ngx_event_openssl.o: in function `ngx_ssl_session_cache':
/usr/src/nginx-1.24.0/src/event/ngx_event_openssl.c:3718: undefined reference to `_SSL_CTX_set_session_cache_mode'
/usr/lib/gcc/x86_64-alpine-linux-musl/9.3.0/../../../../x86_64-alpine-linux-musl/bin/ld: /usr/src/nginx-1.24.0/src/event/ngx_event_openssl.c:3685: undefined reference to `_SSL_CTX_set_session_cache_mode'
/usr/lib/gcc/x86_64-alpine-linux-musl/9.3.0/../../../../x86_64-alpine-linux-musl/bin/ld: /usr/src/nginx-1.24.0/src/event/ngx_event_openssl.c:3702: undefined reference to `_SSL_CTX_set_session_cache_mode'
/usr/lib/gcc/x86_64-alpine-linux-musl/9.3.0/../../../../x86_64-alpine-linux-musl/bin/ld: /usr/src/nginx-1.24.0/src/event/ngx_event_openssl.c:3707: undefined reference to `_SSL_CTX_sess_set_cache_size'
/usr/lib/gcc/x86_64-alpine-linux-musl/9.3.0/../../../../x86_64-alpine-linux-musl/bin/ld: /usr/src/nginx-1.24.0/src/event/ngx_event_openssl.c:3718: undefined reference to `_SSL_CTX_set_session_cache_mode'
/usr/lib/gcc/x86_64-alpine-linux-musl/9.3.0/../../../../x86_64-alpine-linux-musl/bin/ld: /usr/src/nginx-1.24.0/src/event/ngx_event_openssl.c:3723: undefined reference to `_SSL_CTX_sess_set_cache_size'
/usr/lib/gcc/x86_64-alpine-linux-musl/9.3.0/../../../../x86_64-alpine-linux-musl/bin/ld: objs/src/event/ngx_event_openssl.o: in function `ngx_ssl_check_host':
/usr/src/nginx-1.24.0/src/event/ngx_event_openssl.c:4831: undefined reference to `SSL_get1_peer_certificate'
/usr/lib/gcc/x86_64-alpine-linux-musl/9.3.0/../../../../x86_64-alpine-linux-musl/bin/ld: objs/src/event/ngx_event_openssl.o: in function `ngx_ssl_get_cipher_name':
/usr/src/nginx-1.24.0/src/event/ngx_event_openssl.c:5006: undefined reference to `SSL_get_cipher_name'
/usr/lib/gcc/x86_64-alpine-linux-musl/9.3.0/../../../../x86_64-alpine-linux-musl/bin/ld: objs/src/event/ngx_event_openssl.o: in function `ngx_ssl_get_session_id':
/usr/src/nginx-1.24.0/src/event/ngx_event_openssl.c:5206: undefined reference to `SSL_get0_session'
/usr/lib/gcc/x86_64-alpine-linux-musl/9.3.0/../../../../x86_64-alpine-linux-musl/bin/ld: objs/src/event/ngx_event_openssl.o: in function `ngx_ssl_get_raw_certificate':
/usr/src/nginx-1.24.0/src/event/ngx_event_openssl.c:5337: undefined reference to `SSL_get1_peer_certificate'
/usr/lib/gcc/x86_64-alpine-linux-musl/9.3.0/../../../../x86_64-alpine-linux-musl/bin/ld: /usr/src/nginx-1.24.0/src/event/ngx_event_openssl.c:5354: undefined reference to `BIO_pending'
/usr/lib/gcc/x86_64-alpine-linux-musl/9.3.0/../../../../x86_64-alpine-linux-musl/bin/ld: objs/src/event/ngx_event_openssl.o: in function `ngx_ssl_get_subject_dn':
/usr/src/nginx-1.24.0/src/event/ngx_event_openssl.c:5461: undefined reference to `SSL_get1_peer_certificate'
/usr/lib/gcc/x86_64-alpine-linux-musl/9.3.0/../../../../x86_64-alpine-linux-musl/bin/ld: /usr/src/nginx-1.24.0/src/event/ngx_event_openssl.c:5484: undefined reference to `BIO_pending'
/usr/lib/gcc/x86_64-alpine-linux-musl/9.3.0/../../../../x86_64-alpine-linux-musl/bin/ld: objs/src/event/ngx_event_openssl.o: in function `ngx_ssl_get_issuer_dn':
/usr/src/nginx-1.24.0/src/event/ngx_event_openssl.c:5515: undefined reference to `SSL_get1_peer_certificate'
/usr/lib/gcc/x86_64-alpine-linux-musl/9.3.0/../../../../x86_64-alpine-linux-musl/bin/ld: /usr/src/nginx-1.24.0/src/event/ngx_event_openssl.c:5538: undefined reference to `BIO_pending'
/usr/lib/gcc/x86_64-alpine-linux-musl/9.3.0/../../../../x86_64-alpine-linux-musl/bin/ld: objs/src/event/ngx_event_openssl.o: in function `ngx_ssl_get_subject_dn_legacy':
/usr/src/nginx-1.24.0/src/event/ngx_event_openssl.c:5571: undefined reference to `SSL_get1_peer_certificate'
/usr/lib/gcc/x86_64-alpine-linux-musl/9.3.0/../../../../x86_64-alpine-linux-musl/bin/ld: /usr/src/nginx-1.24.0/src/event/ngx_event_openssl.c:5601: undefined reference to `OPENSSL_free'
/usr/lib/gcc/x86_64-alpine-linux-musl/9.3.0/../../../../x86_64-alpine-linux-musl/bin/ld: /usr/src/nginx-1.24.0/src/event/ngx_event_openssl.c:5594: undefined reference to `OPENSSL_free'
/usr/lib/gcc/x86_64-alpine-linux-musl/9.3.0/../../../../x86_64-alpine-linux-musl/bin/ld: objs/src/event/ngx_event_openssl.o: in function `ngx_ssl_get_issuer_dn_legacy':
/usr/src/nginx-1.24.0/src/event/ngx_event_openssl.c:5619: undefined reference to `SSL_get1_peer_certificate'
/usr/lib/gcc/x86_64-alpine-linux-musl/9.3.0/../../../../x86_64-alpine-linux-musl/bin/ld: /usr/src/nginx-1.24.0/src/event/ngx_event_openssl.c:5649: undefined reference to `OPENSSL_free'
/usr/lib/gcc/x86_64-alpine-linux-musl/9.3.0/../../../../x86_64-alpine-linux-musl/bin/ld: /usr/src/nginx-1.24.0/src/event/ngx_event_openssl.c:5642: undefined reference to `OPENSSL_free'
/usr/lib/gcc/x86_64-alpine-linux-musl/9.3.0/../../../../x86_64-alpine-linux-musl/bin/ld: objs/src/event/ngx_event_openssl.o: in function `ngx_ssl_get_serial_number':
/usr/src/nginx-1.24.0/src/event/ngx_event_openssl.c:5665: undefined reference to `SSL_get1_peer_certificate'
/usr/lib/gcc/x86_64-alpine-linux-musl/9.3.0/../../../../x86_64-alpine-linux-musl/bin/ld: /usr/src/nginx-1.24.0/src/event/ngx_event_openssl.c:5678: undefined reference to `BIO_pending'
/usr/lib/gcc/x86_64-alpine-linux-musl/9.3.0/../../../../x86_64-alpine-linux-musl/bin/ld: objs/src/event/ngx_event_openssl.o: in function `ngx_ssl_get_fingerprint':
/usr/src/nginx-1.24.0/src/event/ngx_event_openssl.c:5705: undefined reference to `SSL_get1_peer_certificate'
/usr/lib/gcc/x86_64-alpine-linux-musl/9.3.0/../../../../x86_64-alpine-linux-musl/bin/ld: objs/src/event/ngx_event_openssl.o: in function `ngx_ssl_get_client_verify':
/usr/src/nginx-1.24.0/src/event/ngx_event_openssl.c:5738: undefined reference to `SSL_get1_peer_certificate'
/usr/lib/gcc/x86_64-alpine-linux-musl/9.3.0/../../../../x86_64-alpine-linux-musl/bin/ld: objs/src/event/ngx_event_openssl.o: in function `ngx_ssl_get_client_v_start':
/usr/src/nginx-1.24.0/src/event/ngx_event_openssl.c:5778: undefined reference to `SSL_get1_peer_certificate'
/usr/lib/gcc/x86_64-alpine-linux-musl/9.3.0/../../../../x86_64-alpine-linux-musl/bin/ld: /usr/src/nginx-1.24.0/src/event/ngx_event_openssl.c:5796: undefined reference to `BIO_pending'
/usr/lib/gcc/x86_64-alpine-linux-musl/9.3.0/../../../../x86_64-alpine-linux-musl/bin/ld: objs/src/event/ngx_event_openssl.o: in function `ngx_ssl_get_client_v_end':
/usr/src/nginx-1.24.0/src/event/ngx_event_openssl.c:5823: undefined reference to `SSL_get1_peer_certificate'
/usr/lib/gcc/x86_64-alpine-linux-musl/9.3.0/../../../../x86_64-alpine-linux-musl/bin/ld: /usr/src/nginx-1.24.0/src/event/ngx_event_openssl.c:5841: undefined reference to `BIO_pending'
/usr/lib/gcc/x86_64-alpine-linux-musl/9.3.0/../../../../x86_64-alpine-linux-musl/bin/ld: objs/src/event/ngx_event_openssl.o: in function `ngx_ssl_get_client_v_remain':
/usr/src/nginx-1.24.0/src/event/ngx_event_openssl.c:5867: undefined reference to `SSL_get1_peer_certificate'
/usr/lib/gcc/x86_64-alpine-linux-musl/9.3.0/../../../../x86_64-alpine-linux-musl/bin/ld: objs/src/event/ngx_event_openssl.o: in function `ngx_ssl_parse_time':
/usr/src/nginx-1.24.0/src/event/ngx_event_openssl.c:5934: undefined reference to `BIO_get_mem_data'
/usr/lib/gcc/x86_64-alpine-linux-musl/9.3.0/../../../../x86_64-alpine-linux-musl/bin/ld: objs/src/http/ngx_http_request.o: in function `ngx_http_process_request':
/usr/src/nginx-1.24.0/src/http/ngx_http_request.c:2040: undefined reference to `SSL_get0_session'
/usr/lib/gcc/x86_64-alpine-linux-musl/9.3.0/../../../../x86_64-alpine-linux-musl/bin/ld: /usr/src/nginx-1.24.0/src/http/ngx_http_request.c:2068: undefined reference to `SSL_get0_session'
/usr/lib/gcc/x86_64-alpine-linux-musl/9.3.0/../../../../x86_64-alpine-linux-musl/bin/ld: /usr/src/nginx-1.24.0/src/http/ngx_http_request.c:2048: undefined reference to `SSL_get1_peer_certificate'
/usr/lib/gcc/x86_64-alpine-linux-musl/9.3.0/../../../../x86_64-alpine-linux-musl/bin/ld: /usr/src/nginx-1.24.0/src/http/ngx_http_request.c:2054: undefined reference to `SSL_get0_session'
/usr/lib/gcc/x86_64-alpine-linux-musl/9.3.0/../../../../x86_64-alpine-linux-musl/bin/ld: objs/src/mail/ngx_mail_handler.o: in function `ngx_mail_verify_cert':
/usr/src/nginx-1.24.0/src/mail/ngx_mail_handler.c:410: undefined reference to `SSL_get0_session'
/usr/lib/gcc/x86_64-alpine-linux-musl/9.3.0/../../../../x86_64-alpine-linux-musl/bin/ld: /usr/src/nginx-1.24.0/src/mail/ngx_mail_handler.c:425: undefined reference to `SSL_get1_peer_certificate'
/usr/lib/gcc/x86_64-alpine-linux-musl/9.3.0/../../../../x86_64-alpine-linux-musl/bin/ld: /usr/src/nginx-1.24.0/src/mail/ngx_mail_handler.c:431: undefined reference to `SSL_get0_session'
/usr/lib/gcc/x86_64-alpine-linux-musl/9.3.0/../../../../x86_64-alpine-linux-musl/bin/ld: objs/src/stream/ngx_stream_ssl_module.o: in function `ngx_stream_ssl_handler':
/usr/src/nginx-1.24.0/src/stream/ngx_stream_ssl_module.c:369: undefined reference to `SSL_get0_session'
/usr/lib/gcc/x86_64-alpine-linux-musl/9.3.0/../../../../x86_64-alpine-linux-musl/bin/ld: /usr/src/nginx-1.24.0/src/stream/ngx_stream_ssl_module.c:375: undefined reference to `SSL_get1_peer_certificate'
/usr/lib/gcc/x86_64-alpine-linux-musl/9.3.0/../../../../x86_64-alpine-linux-musl/bin/ld: /usr/src/nginx-1.24.0/src/stream/ngx_stream_ssl_module.c:381: undefined reference to `SSL_get0_session'

检查依赖文件,显示符合要求,均依赖gmssl

/ # cd /usr/local/include/openssl/
/usr/local/include/openssl # ls
asn1.h      bn.h        crypto.h    err.h       hmac.h      pem.h       rsa.h       symhacks.h  x509_vfy.h
bio.h       conf.h      dh.h        evp.h       opensslv.h  rand.h      ssl.h       x509.h      x509v3.h
/usr/local/include/openssl # cat opensslv.h 
/*
 *  Copyright 2014-2024 The GmSSL Project. All Rights Reserved.
 *
 *  Licensed under the Apache License, Version 2.0 (the License); you may
 *  not use this file except in compliance with the License.
 *
 *  http://www.apache.org/licenses/LICENSE-2.0
 */

#ifndef OPENSSL_OPENSSLV_H
#define OPENSSL_OPENSSLV_H

#include <gmssl/version.h>

#ifdef __cplusplus
extern "C" {
#endif

#define GMSSL_OCL_VERSION_STR   "GmSSL OCL 0.8.1"

#define OPENSSL_VERSION_NUMBER  0x30000000L
#define OPENSSL_VERSION_TEXT    GMSSL_VERSION_STR
#define OpenSSL_version(num)    GMSSL_VERSION_STR
#define SSLeay_version(num)     GMSSL_VERSION_STR

#ifdef __cplusplus
}
#endif
#endif
/usr/local/include/openssl # cd /usr/local/lib/
/usr/local/lib # ls
libcrypto.so     libgmssl.so.3    libssl.so
libgmssl.so      libgmssl.so.3.1  perl5
/usr/local/lib # ldd /usr/local/lib/libcrypto.so
        /lib/ld-musl-x86_64.so.1 (0x7f0efef1c000)
        libgmssl.so.3 => /usr/local/lib/libgmssl.so.3 (0x7f0efedf8000)
        libc.musl-x86_64.so.1 => /lib/ld-musl-x86_64.so.1 (0x7f0efef1c000)

这是部分dockerfile:

FROM alpine:3.11

ENV UPLOAD_MODULE_VERSION 2.3.0
# ENV UPLOAD_PROGRESS_MODULE_VERSION 0.9.1
ENV TOML_VERSION=0.2.3 \
    YQ_VERSION=4.34.1 \
    YJ_VERSION=5.1.0

RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.tuna.tsinghua.edu.cn/g' /etc/apk/repositories
RUN apk --no-cache add bash

COPY nginx-upload-module-2.3.0.tar.gz /usr/src/nginx_upload.tar.gz
COPY nginx-upload-progress-module-0.9.1 /usr/src/nginx-upload-progress-module

COPY GmSSL /usr/GmSSL
COPY OpenSSL-Compatibility-Layer /usr/OpenSSL-Compatibility-Layer

RUN apk update && apk add build-base cmake \
    && apk add --no-cache --virtual .build-deps \
    gcc \
    libc-dev \
    make \
    openssl-dev \
    openssl \
    pcre-dev \
    zlib-dev \
    linux-headers \
    curl \
    gnupg1 \
    libxslt-dev \
    gd-dev \
    geoip-dev

RUN cd /usr/GmSSL && \
    mkdir build && \
    cd build && \
    cmake .. && \
    make && \
    make install && \
    cd /usr/OpenSSL-Compatibility-Layer && \
    mkdir build  && \
    cd build && \
    cmake .. && \
    make && \
    make install

ENV NGINX_VERSION 1.24.0
RUN set -x \
    && GPG_KEYS=B0F4253373F8F6F510D42178520A9993A1C052F8 \
    && CONFIG="\
        --prefix=/etc/nginx \
        --sbin-path=/usr/sbin/nginx \
        --modules-path=/usr/lib/nginx/modules \
        --conf-path=/etc/nginx/nginx.conf \
        --error-log-path=/var/log/nginx/error.log \
        --http-log-path=/var/log/nginx/access.log \
        --pid-path=/var/run/nginx.pid \
        --lock-path=/var/run/nginx.lock \
        --http-client-body-temp-path=/var/cache/nginx/client_temp \
        --http-proxy-temp-path=/var/cache/nginx/proxy_temp \
        --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp \
        --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp \
        --http-scgi-temp-path=/var/cache/nginx/scgi_temp \
        --user=nginx \
        --group=nginx \
        --with-http_ssl_module \
        --with-http_realip_module \
        --with-http_addition_module \
        --with-http_sub_module \
        --with-http_dav_module \
        --with-http_flv_module \
        --with-http_mp4_module \
        --with-http_gunzip_module \
        --with-http_gzip_static_module \
        --with-http_random_index_module \
        --with-http_secure_link_module \
        --with-http_stub_status_module \
        --with-http_auth_request_module \
        --with-http_xslt_module=dynamic \
        --with-http_geoip_module=dynamic \
        --with-threads \
        --with-stream \
        --with-stream_ssl_module \
        --with-stream_ssl_preread_module \
        --with-stream_realip_module \
        --with-stream_geoip_module=dynamic \
        --with-http_slice_module \
        --with-mail \
        --with-mail_ssl_module \
        --with-compat \
        --with-file-aio \
        --with-http_v2_module \
        --without-http_rewrite_module \
        --add-module=/usr/src/nginx-upload-module-$UPLOAD_MODULE_VERSION \
        --add-module=/usr/src/nginx-upload-progress-module \
    " \
    && addgroup -S nginx \
    && adduser -D -S -h /var/cache/nginx -s /sbin/nologin -G nginx nginx \
    && curl -fSL https://nginx.org/download/nginx-$NGINX_VERSION.tar.gz -o nginx.tar.gz \
    && curl -fSL https://nginx.org/download/nginx-$NGINX_VERSION.tar.gz.asc  -o nginx.tar.gz.asc \
    && mkdir -p /usr/src \
    && tar -zxC /usr/src -f nginx.tar.gz \
    && rm nginx.tar.gz \
    && cd /usr/src/nginx-$NGINX_VERSION \
    # && curl -fSL https://github.com/fdintino/nginx-upload-module/archive/$UPLOAD_MODULE_VERSION.tar.gz -o /usr/src/nginx_upload.tar.gz \
    && tar xvzf /usr/src/nginx_upload.tar.gz -C /usr/src/ \
    # && curl -fSL https://github.com/masterzen/nginx-upload-progress-module/archive/v${UPLOAD_PROGRESS_MODULE_VERSION}.tar.gz -o /usr/src/nginx_upload_progress.tar.gz \
    # && tar xvzf /usr/src/nginx_upload_progress.tar.gz -C /usr/src/ \
    && ./configure $CONFIG --with-debug \
    && make -j$(getconf _NPROCESSORS_ONLN) \
    && mv objs/nginx objs/nginx-debug \
    && mv objs/ngx_http_xslt_filter_module.so objs/ngx_http_xslt_filter_module-debug.so \
    && mv objs/ngx_http_geoip_module.so objs/ngx_http_geoip_module-debug.so \
    && mv objs/ngx_stream_geoip_module.so objs/ngx_stream_geoip_module-debug.so \
    && ./configure $CONFIG \
    && make -j$(getconf _NPROCESSORS_ONLN) \
    && make install \
    && rm -rf /etc/nginx/html/ \
    && mkdir /etc/nginx/conf.d/ \
    && mkdir -p /usr/share/nginx/html/ \
    && install -m644 html/index.html /usr/share/nginx/html/ \
    && install -m644 html/50x.html /usr/share/nginx/html/ \
    && install -m755 objs/nginx-debug /usr/sbin/nginx-debug \
    && install -m755 objs/ngx_http_xslt_filter_module-debug.so /usr/lib/nginx/modules/ngx_http_xslt_filter_module-debug.so \
    && install -m755 objs/ngx_http_geoip_module-debug.so /usr/lib/nginx/modules/ngx_http_geoip_module-debug.so \
    && install -m755 objs/ngx_stream_geoip_module-debug.so /usr/lib/nginx/modules/ngx_stream_geoip_module-debug.so \
    && ln -s ../../usr/lib/nginx/modules /etc/nginx/modules \
    && strip /usr/sbin/nginx* \
    && strip /usr/lib/nginx/modules/*.so \
    && rm -rf /usr/src/nginx-$NGINX_VERSION \

应该是版本匹配问题,能否提供readme中nginx测试时GMSSL,OCL和nginx的版本匹配信息?

PikaByter commented 3 months ago

更换成ubuntu22.04镜像后,依然报错:

-shared
/usr/bin/ld: objs/src/event/ngx_event_openssl.o: in function `ngx_ssl_info_callback':
/usr/src/nginx-1.24.0/src/event/ngx_event_openssl.c:1155: undefined reference to `BIO_set_write_buffer_size'
/usr/bin/ld: objs/src/event/ngx_event_openssl.o: in function `ngx_ssl_load_certificate':
/usr/src/nginx-1.24.0/src/event/ngx_event_openssl.c:658: undefined reference to `sk_X509_new_null'
/usr/bin/ld: /usr/src/nginx-1.24.0/src/event/ngx_event_openssl.c:689: undefined reference to `sk_X509_push'
/usr/bin/ld: /usr/src/nginx-1.24.0/src/event/ngx_event_openssl.c:693: undefined reference to `sk_X509_pop_free'
/usr/bin/ld: /usr/src/nginx-1.24.0/src/event/ngx_event_openssl.c:672: undefined reference to `ERR_GET_LIB'
/usr/bin/ld: /usr/src/nginx-1.24.0/src/event/ngx_event_openssl.c:673: undefined reference to `ERR_GET_REASON'
/usr/bin/ld: /usr/src/nginx-1.24.0/src/event/ngx_event_openssl.c:685: undefined reference to `sk_X509_pop_free'
/usr/bin/ld: objs/src/event/ngx_event_openssl.o: in function `ngx_ssl_load_certificate_key':
/usr/src/nginx-1.24.0/src/event/ngx_event_openssl.c:805: undefined reference to `BIO_reset'
/usr/bin/ld: objs/src/event/ngx_event_openssl.o: in function `ngx_ssl_client_session_cache':
/usr/src/nginx-1.24.0/src/event/ngx_event_openssl.c:1639: undefined reference to `_SSL_CTX_set_session_cache_mode'
/usr/bin/ld: objs/src/event/ngx_event_openssl.o: in function `ngx_ssl_get0_session':
/usr/src/nginx-1.24.0/src/event/ngx_event_openssl.c:1744: undefined reference to `SSL_get0_session'
/usr/bin/ld: objs/src/event/ngx_event_openssl.o: in function `ngx_ssl_init':
/usr/src/nginx-1.24.0/src/event/ngx_event_openssl.c:189: undefined reference to `SSL_get_ex_new_index'
/usr/bin/ld: /usr/src/nginx-1.24.0/src/event/ngx_event_openssl.c:196: undefined reference to `SSL_CTX_get_ex_new_index'
/usr/bin/ld: /usr/src/nginx-1.24.0/src/event/ngx_event_openssl.c:204: undefined reference to `SSL_CTX_get_ex_new_index'
/usr/bin/ld: /usr/src/nginx-1.24.0/src/event/ngx_event_openssl.c:212: undefined reference to `SSL_CTX_get_ex_new_index'
/usr/bin/ld: /usr/src/nginx-1.24.0/src/event/ngx_event_openssl.c:220: undefined reference to `SSL_CTX_get_ex_new_index'
/usr/bin/ld: /usr/src/nginx-1.24.0/src/event/ngx_event_openssl.c:227: undefined reference to `SSL_CTX_get_ex_new_index'
/usr/bin/ld: /usr/src/nginx-1.24.0/src/event/ngx_event_openssl.c:235: undefined reference to `X509_get_ex_new_index'
/usr/bin/ld: /usr/src/nginx-1.24.0/src/event/ngx_event_openssl.c:242: undefined reference to `X509_get_ex_new_index'
/usr/bin/ld: /usr/src/nginx-1.24.0/src/event/ngx_event_openssl.c:250: undefined reference to `X509_get_ex_new_index'
/usr/bin/ld: objs/src/event/ngx_event_openssl.o: in function `ngx_ssl_create':
/usr/src/nginx-1.24.0/src/event/ngx_event_openssl.c:264: undefined reference to `SSLv23_method'
/usr/bin/ld: /usr/src/nginx-1.24.0/src/event/ngx_event_openssl.c:391: undefined reference to `SSL_CTX_set_read_ahead'
/usr/bin/ld: objs/src/event/ngx_event_openssl.o: in function `ngx_ssl_certificate':
/usr/src/nginx-1.24.0/src/event/ngx_event_openssl.c:488: undefined reference to `_SSL_CTX_set0_chain'
/usr/bin/ld: /usr/src/nginx-1.24.0/src/event/ngx_event_openssl.c:446: undefined reference to `sk_X509_pop_free'
/usr/bin/ld: /usr/src/nginx-1.24.0/src/event/ngx_event_openssl.c:455: undefined reference to `sk_X509_pop_free'
/usr/bin/ld: /usr/src/nginx-1.24.0/src/event/ngx_event_openssl.c:465: undefined reference to `sk_X509_pop_free'
/usr/bin/ld: /usr/src/nginx-1.24.0/src/event/ngx_event_openssl.c:473: undefined reference to `sk_X509_pop_free'
/usr/bin/ld: /usr/src/nginx-1.24.0/src/event/ngx_event_openssl.c:491: undefined reference to `sk_X509_pop_free'
/usr/bin/ld: objs/src/event/ngx_event_openssl.o:/usr/src/nginx-1.24.0/src/event/ngx_event_openssl.c:567: more undefined references to `sk_X509_pop_free' follow
/usr/bin/ld: objs/src/event/ngx_event_openssl.o: in function `ngx_ssl_verify_callback':
/usr/src/nginx-1.24.0/src/event/ngx_event_openssl.c:1056: undefined reference to `OPENSSL_free'
/usr/bin/ld: /usr/src/nginx-1.24.0/src/event/ngx_event_openssl.c:1060: undefined reference to `OPENSSL_free'
/usr/bin/ld: objs/src/event/ngx_event_openssl.o: in function `ngx_ssl_crl':
/usr/src/nginx-1.24.0/src/event/ngx_event_openssl.c:983: undefined reference to `X509_LOOKUP_load_file'
/usr/bin/ld: objs/src/event/ngx_event_openssl.o: in function `ngx_ssl_dhparam':
/usr/src/nginx-1.24.0/src/event/ngx_event_openssl.c:1404: undefined reference to `_SSL_CTX_set_tmp_dh'
/usr/bin/ld: objs/src/event/ngx_event_openssl.o: in function `ngx_ssl_ecdh_curve':
/usr/src/nginx-1.24.0/src/event/ngx_event_openssl.c:1486: undefined reference to `_SSL_CTX_set1_group_list'
/usr/bin/ld: objs/src/event/ngx_event_openssl.o: in function `ngx_ssl_connection_error':
/usr/src/nginx-1.24.0/src/event/ngx_event_openssl.c:3392: undefined reference to `ERR_GET_REASON'
/usr/bin/ld: objs/src/event/ngx_event_openssl.o: in function `ngx_ssl_session_id_context':
/usr/src/nginx-1.24.0/src/event/ngx_event_openssl.c:3820: undefined reference to `sk_X509_NAME_num'
/usr/bin/ld: /usr/src/nginx-1.24.0/src/event/ngx_event_openssl.c:3823: undefined reference to `sk_X509_NAME_value'
/usr/bin/ld: objs/src/event/ngx_event_openssl.o: in function `ngx_ssl_session_cache':
/usr/src/nginx-1.24.0/src/event/ngx_event_openssl.c:3718: undefined reference to `_SSL_CTX_set_session_cache_mode'
/usr/bin/ld: /usr/src/nginx-1.24.0/src/event/ngx_event_openssl.c:3685: undefined reference to `_SSL_CTX_set_session_cache_mode'
/usr/bin/ld: /usr/src/nginx-1.24.0/src/event/ngx_event_openssl.c:3702: undefined reference to `_SSL_CTX_set_session_cache_mode'
/usr/bin/ld: /usr/src/nginx-1.24.0/src/event/ngx_event_openssl.c:3707: undefined reference to `_SSL_CTX_sess_set_cache_size'
/usr/bin/ld: /usr/src/nginx-1.24.0/src/event/ngx_event_openssl.c:3718: undefined reference to `_SSL_CTX_set_session_cache_mode'
/usr/bin/ld: /usr/src/nginx-1.24.0/src/event/ngx_event_openssl.c:3723: undefined reference to `_SSL_CTX_sess_set_cache_size'
/usr/bin/ld: objs/src/event/ngx_event_openssl.o: in function `ngx_ssl_get_cipher_name':
/usr/src/nginx-1.24.0/src/event/ngx_event_openssl.c:5006: undefined reference to `SSL_get_cipher_name'
/usr/bin/ld: objs/src/event/ngx_event_openssl.o: in function `ngx_ssl_get_session_id':
/usr/src/nginx-1.24.0/src/event/ngx_event_openssl.c:5206: undefined reference to `SSL_get0_session'
/usr/bin/ld: objs/src/event/ngx_event_openssl.o: in function `ngx_ssl_get_raw_certificate':
/usr/src/nginx-1.24.0/src/event/ngx_event_openssl.c:5354: undefined reference to `BIO_pending'
/usr/bin/ld: objs/src/event/ngx_event_openssl.o: in function `ngx_ssl_get_subject_dn':
/usr/src/nginx-1.24.0/src/event/ngx_event_openssl.c:5484: undefined reference to `BIO_pending'
/usr/bin/ld: objs/src/event/ngx_event_openssl.o: in function `ngx_ssl_get_issuer_dn':
/usr/src/nginx-1.24.0/src/event/ngx_event_openssl.c:5538: undefined reference to `BIO_pending'
/usr/bin/ld: objs/src/event/ngx_event_openssl.o: in function `ngx_ssl_get_subject_dn_legacy':
/usr/src/nginx-1.24.0/src/event/ngx_event_openssl.c:5601: undefined reference to `OPENSSL_free'
/usr/bin/ld: /usr/src/nginx-1.24.0/src/event/ngx_event_openssl.c:5594: undefined reference to `OPENSSL_free'
/usr/bin/ld: objs/src/event/ngx_event_openssl.o: in function `ngx_ssl_get_issuer_dn_legacy':
/usr/src/nginx-1.24.0/src/event/ngx_event_openssl.c:5649: undefined reference to `OPENSSL_free'
/usr/bin/ld: /usr/src/nginx-1.24.0/src/event/ngx_event_openssl.c:5642: undefined reference to `OPENSSL_free'
/usr/bin/ld: objs/src/event/ngx_event_openssl.o: in function `ngx_ssl_get_serial_number':
/usr/src/nginx-1.24.0/src/event/ngx_event_openssl.c:5678: undefined reference to `BIO_pending'
/usr/bin/ld: objs/src/event/ngx_event_openssl.o: in function `ngx_ssl_get_client_v_start':
/usr/src/nginx-1.24.0/src/event/ngx_event_openssl.c:5796: undefined reference to `BIO_pending'
/usr/bin/ld: objs/src/event/ngx_event_openssl.o: in function `ngx_ssl_get_client_v_end':
/usr/src/nginx-1.24.0/src/event/ngx_event_openssl.c:5841: undefined reference to `BIO_pending'
/usr/bin/ld: objs/src/event/ngx_event_openssl.o: in function `ngx_ssl_parse_time':
/usr/src/nginx-1.24.0/src/event/ngx_event_openssl.c:5934: undefined reference to `BIO_get_mem_data'
/usr/bin/ld: objs/src/http/ngx_http_request.o: in function `ngx_http_process_request':
/usr/src/nginx-1.24.0/src/http/ngx_http_request.c:2040: undefined reference to `SSL_get0_session'
/usr/bin/ld: /usr/src/nginx-1.24.0/src/http/ngx_http_request.c:2068: undefined reference to `SSL_get0_session'
/usr/bin/ld: /usr/src/nginx-1.24.0/src/http/ngx_http_request.c:2054: undefined reference to `SSL_get0_session'
/usr/bin/ld: objs/src/mail/ngx_mail_handler.o: in function `ngx_mail_verify_cert':
/usr/src/nginx-1.24.0/src/mail/ngx_mail_handler.c:410: undefined reference to `SSL_get0_session'
/usr/bin/ld: /usr/src/nginx-1.24.0/src/mail/ngx_mail_handler.c:431: undefined reference to `SSL_get0_session'
/usr/bin/ld: objs/src/stream/ngx_stream_ssl_module.o:/usr/src/nginx-1.24.0/src/stream/ngx_stream_ssl_module.c:369: more undefined references to `SSL_get0_session' follow
collect2: error: ld returned 1 exit status
make[1]: Leaving directory '/usr/src/nginx-1.24.0'
make[1]: *** [objs/Makefile:328: objs/nginx] Error 1
make: *** [Makefile:10: build] Error 2
PikaByter commented 2 months ago

已完成编译,经测试,系统中若存在libssl-dev,则会对OCL产生干扰,需要先移除libssl-dev,再重新安装OCL,编译nginx

apt-get purge libssl-dev