openssl安装

在尝试在CentOS系统上安装带有SSL模块的Nginx时遇到错误。问题出在openssl版本过高,导致编译失败。为解决此问题,将openssl降级到1.0.1u版本,并从官方网站下载源码。编译过程中出现 ngx_event_openssl.c 文件中的错误,包括对incomplete type的指针解引用错误,以及编译错误导致构建失败。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

依赖:安装 nginx 的 ssl 模块

系统:CentOS

报错:如下

处理:降为 openssl-1.0.1u.tar.gz    「  3.0.0 -> 1.1.1d -> 1.1.1g -> 1.0.1 」 

下载:https://www.openssl.org/source/old/

 

src/event/ngx_event_openssl.c:1884:42: error: dereferencing pointer to incomplete type

     ngx_memcpy(id, sess->session_id, sess->session_id_length);

                                          ^

src/core/ngx_string.h:102:59: note: in definition of macro 'ngx_memcpy'

#define ngx_memcpy(dst, src, n)   (void) memcpy(dst, src, n)

                                                           ^

src/event/ngx_event_openssl.c:1886:32: error: dereferencing pointer to incomplete type

     hash = ngx_crc32_short(sess->session_id, sess->session_id_length);

                                ^

src/event/ngx_event_openssl.c:1886:50: error: dereferencing pointer to incomplete type

     hash = ngx_crc32_short(sess->session_id, sess->session_id_length);

                                                  ^

src/event/ngx_event_openssl.c:1893:39: error: dereferencing pointer to incomplete type

     sess_id->node.data = (u_char) sess->session_id_length;

                                       ^

src/event/ngx_event_openssl.c: In function 'ngx_ssl_remove_session':

src/event/ngx_event_openssl.c:2059:14: error: dereferencing pointer to incomplete type

     id = sess->session_id;

              ^

src/event/ngx_event_openssl.c:2060:24: error: dereferencing pointer to incomplete type

     len = (size_t) sess->session_id_length;

                        ^

cc1: all warnings being treated as errors

make[1]: *** [objs/src/event/ngx_event_openssl.o] Error 1

make[1]: Leaving directory `/usr/local/src/nginx-1.4.2'

make: *** [build] Error 2

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值