zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    用移动硬盘代替DVD安装单系统Vista方法
    背完这444句,你的口语绝对不成问题了
    DataGridView 只能输入整数解决方案
    转载:Firefox的失败在中国几乎就是命中注定
    ZBlog 添加运行天数
    并行和串行通信
    ZBlog 添加收藏本站
    ITPUB调查高达42%的DBA由开发人员转变而成
    DataGridView 只能输入整数解决方案
    用移动硬盘代替DVD安装单系统Vista方法
  • 原文地址:https://www.cnblogs.com/wzwyoshino/p/15500512.html
Copyright © 2011-2022 走看看