Linux学习笔记

Openeuler中OpenSSL的安装

20191318王泽文


  参考链接https://www.cnblogs.com/rocedu/p/5087623.html进行OpenSSL的安装。

  从官网下载最新版OpenSSL,这里下载的是openssl-3.0.0.tar.gz 。

  使用tar解压源代码。
tar xzvf openssl-1.1.0-pre1.tar.gz


  进入到OpenSSL的文件夹中。

  然后使用下列命令编译安装:

./Configure

make

sudo make install




  使用make test测试没有问题。


  使用参考链接中的代码进行测试:

  测试代码test_openssl.c:

#include <stdio.h>
#include <openssl/evp.h>

int main(){
	
    OpenSSL_add_all_algorithms();
	
    return 0;
}

  然后用下面命令编译:
gcc -o to test_openssl.c -I /usr/local/ssl/inlcude -L /usr/local/ssl/lib -ldl -lpthread

报错

  查看代码中OpenSSL_add_all_algorithms()所在头文件evp.h中的定义发现OPENSSL_init_crypto函数确实被引用,再查询文件或查询安装信息发现OPENSSL_init_crypto所在文件crypto.hevp.h都位于/usr/local/include/openssl而不是/usr/local/ssl/inlcude

  接着,我们使用修改后的命令编译gcc -o to test_openssl.c -I /usr/local/ssl/inlcude -L /usr/local/ssl/lib -ldl -lpthread依旧报同样错误。

  这时,发现所用的lib库不存在

  通过查找安装信息,发现lib安装在/usr/local/lib64中,通过库文件可以得知crypto.hevp.h都在crypto的库中

  重新编译、
gcc -o to test_openssl.c -I /usr/local/include/openssl -L /usr/local/lib64 -lcrypto -lpthread
执行
./to;echo $?
  发现报错

  通过查找lib64发现确实没有libcrypto.so.3文件,并没有将其安装上,但有libcrypto.so.1.1文件,这时可以通过两种方法解决。

  1. 直接使用系统自带的旧版本的libcrypto.so.1.1文件编译
    gcc -o to test_openssl.c -I /usr/local/include/openssl /usr/lib64/libcrypto.so.1.1 -lpthread
  2. 在解压的OpenSSL-3.0文件夹中,可以发现有libcrypto.so.3文件,可以通过将其放入lib64中解决。
    cp /wzw/openssl-3.0.0/libcrypto.so.3 /usr/lib64/libcrypto.so.3
posted @ 2021-11-02 19:01  20191318王泽文  阅读(138)  评论(1编辑  收藏  举报