问题标签 [libssl]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
gcc - 重命名 libcrypto 和 libssl
我正在尝试编译openSSL,以便我可以重命名目标库,即 libssl 和 libcrypto 类似于 libssl_my 和 libcrypto_my。
为此,我尝试了以下操作:
在 openSSL Makefile 中更改了一些标志,如
"SHARED_CRYPTO"
,等"SHARED_SSL"
,libcrypto$(SHLIB_EXT)
但没有任何效果。是否可以从 Makefile 更改 Lib 名称,如果可以,我应该寻找哪些更改?使用 patchelf 来修补 libcrypto 和 libssl 的 SONAME,它可以工作,但 libssl 仍在搜索 libcrypto.so.0.o。看起来我们无法通过 patchelf 更改 libssl 中的依赖库名称。如果有办法,请告诉我。
python-2.7 - 升级 pyopenssl ImportError 后出现相同的错误:没有名为 _util 的模块
我已经升级了 pyopenssl 但仍然遇到同样的错误。
openssl - 为什么 openssl 提供两组相似/重复的 API:SSL_* 和 SSL_CTX_*
我在 google 和 bing、openssl 常见问题解答、一些 API 手册页上进行了搜索,但没有找到任何提示。
这是一个历史问题,还是一个深思熟虑的设计?
uwsgi - 用于 https 配置的 UWSGI 不起作用
UWSGI 版本 - 2.0.18
Openssl- 1.0.2k-fips
蟒蛇 2.7
得到错误:
c++ - 升级 ubuntu 18.04 后链接 libssl 出现未定义的引用错误
我的构建之前可以正常工作,但是在升级 ubuntu 18.04 之后,现在它是错误的。
我的 C++ 版本:
c++ --version c++ (Ubuntu 7.4.0-1ubuntu1~18.04) 7.4.0 版权所有 (C) 2017 Free Software Foundation, Inc. 这是免费软件;查看复制条件的来源。没有保修;甚至不考虑适销性或特定用途的适用性。
ubuntu - 由于不满足依赖关系而无法安装rabbitmq:libssl
我想在我的 Ubuntu 18.04 上安装 rabbitmq。我一直在关注官方文档。但是,我的安装没有完成,因为我卡在了这一步:sudo apt-get install rabbitmq-server -y --fix-missing
因为我遇到了一个错误:未满足的依赖项。
我尝试安装 libssl,然后安装 erlang-crypto,但没有成功。我也安装aptitude
了我尝试安装erlang-crypto
的东西,它也没有安装任何软件包。
我正在运行的命令是:
我收到一条失败消息:
该libssl
软件包不可用,我已成功安装libssl-dev
。
我希望完全安装 RabbitMQ 并成功运行。
libssl - /system/lib/libssl.so (SSL_is_init_finished+7)
这是崩溃日志,大部分崩溃在 android os 8.1.0 中。
/system/lib/libssl.so (SSL_is_init_finished+7)
openssl - OpenSSL 使用 P-256 或 P-384 密钥在 CSR 上生成非确定性签名,而不是 RSA 密钥?
当我使用openssl
命令行生成 RSA-2048 密钥对,然后使用相同的私钥为相同的域名构造两个证书签名请求 (CSR) 时,我得到相同的输出。
但是,当我生成一个椭圆曲线 (P-256) 密钥对,并使用相同的私钥为相同的域名创建两个 CSR 时,我会得到两个不同的输出!
这不是一次性的事情。我使用这个 P-256 密钥生成 1000 个 CSR,我得到 1000 个不同的输出。我使用这个 RSA-2048 密钥生成 1000 个 CSR,得到 1000 个相同的输出。
这到底是怎么回事?有什么方法可以强制 OpenSSL 生成可重现的输出?有什么理由我不希望 OpenSSL 生成可重现的输出?
是否有任何理由希望OpenSSL 在使用 RSA 密钥时生成可重现的输出,但在使用 EC 密钥时不生成?
我应该补充一点,我使用https://certlogik.com/decoder/来查看正在生成的 CSR,它们看起来完全一样,除了最后BIT STRING
,我假设它应该是 SHA-256 签名?
我还看到 P-384 键发生了同样的不确定性:
c++ - 如何卸载旧版本的 libcrypro 库
我正在尝试将统一自动化 c++ OPCUA 堆栈链接到我的项目,但我收到了警告:
libcrypto.so.1.1, needed by libuastackd.so, may conflict with libcrypto.so.1.0.0
其次是错误:
:-1: error: libuapkicppd.a(uapkicertificate.cpp.o): undefined reference to symbol 'OPENSSL_sk_num@@OPENSSL_1_1_0'
在命令提示符下,共享库上的 ldconfig 返回:
我可以安全地删除libssl.so.1.0.0 (libc6,x86-64)
andlibcrypto.so.1.0.0
吗?
makefile - 链接安装在自定义位置的 SSL 和加密库时出错
我正在尝试创建一个要链接的共享库,该库OpenSSL-1.0.2p
依赖于libssl1.0
. 然而OpenSSL-1.1.1
,在我的 ubuntu 仿生机器上安装的 OpenSSL 版本是内部使用libssl1.1
的 .
由于我不希望在系统范围内安装 OpenSSL-1.0,因此我下载并编译了它,并将其单独安装到我的主目录中的一个文件夹中。
我希望使用我希望我的共享库链接的这个位置。这是我要创建的共享库的 Makefile:
但是,make 报告包含的头文件来自系统的 openssl 安装,因此编译失败(因为它需要 OpenSSL-1.0.2p)。这是一个示例:
CRYPTO_w_lock
是一个在最新版本中不再存在的宏,crypto.h (OpenSSL-1.1)
它清楚地表明我的应用程序仍在查看 OpenSSL 的系统版本。
在我的源文件中,我包含了 SSL 头文件,如下所示:
虽然角括号应该告诉编译器查看系统的头文件,但-L
命令行上的-I
标志和标志不是强制它在查看系统文件之前在上述目录中查找它们吗?
我crypto.h
在 OpenSSL 的自定义安装位置确实有一个文件,但由于某种原因编译器似乎忽略了它
我在这里想念什么?
更新 1:正如 Darren 所建议的,删除了尾随的 openssl,所以现在我的包含路径是
INC+=-I$(OPENSSL1.0.2p_INSTALL_LOC)/include
,瞧,我可以看到共享库正在创建。但是,当我尝试在这个新创建的共享库中查找对ssl的引用时,我看到我有 87 个条目(其中包括所有以ssl作为其名称一部分的符号)
ab@ab1-pc:~/Documents/AB/APP_2.17.0$ nm libAPP.so | grep -i "ssl" | wc -l
87
而仅列出来自的全局符号libssl.a
告诉我它有 1113 个全局定义的符号。
ab@ab1-pc:~/Documents/AB/APP_2.17.0$ nm -g ../OpenSSL-1.0.2p-installation/lib/libssl.a | grep -i "ssl" | wc -l
1113
前者不应该比后者多吗?这与我的“应用程序”是共享库这一事实有关吗?即使那样,它不应该从它链接的任何静态库中提取所有符号(至少是全局符号)吗?
更新 2:现在显然因为我遇到了 SSL 符号的问题,我转而创建一个静态库,因此对 makefile 进行了相应的更改。