LINUX教程:Linux下OpenSSL静态库编译及使用
《LINUX教程:Linux下OpenSSL静态库编译及使用》要点: openssl官网:https://www.openssl.org 下载源码 源码地址为:https://www.openssl.org/source/old/;当前最新版本为 1.1.0f,https://www.openssl.org/source/old/1.1.0/openssl-1.1.0f.tar.gz 源码编译 解压之后,进入源码目录openssl-1.1.0f,执行如下命令.因为只必要编译静态库,也没有特殊要求,所以使用的编译选项配置很简单: ./config -fPIC no-shared make 其中,-fPIC:指示生成位置无关的代码,这个选项是在把openssl生成的静态库链接到动态库的时候提示差错添加的;no-shared:指示生成静态库. 最终在当前目录下会编译出libssl.a和libcrypto.a两个库文件,在开发的时候只需要包括头件并链接这两个库就可以了. 开发使用 有一点必要注意的是编译生成的库libssl.a和libcrypto.a存在依赖关系,要把libssl.a放在libcrypto.a前面,不然可能出现未定义的错误.库的头文件在openssl-1.1.0f/include/openssl目录中. 将openssl-1.1.0f/include/openssl目录拷贝到本身模块的头文件目录(./inc)下,将libssl.a和libcrypto.a静态库拷贝到本身模块的库文件目录(./lib)下,在makefile中添加头文件目录和lib库: INCLUDE += 淫乱淫乱** -I./inc LIB += 淫乱淫乱* -L./lib -lssl -lcrypto 在使用openssl库函数时,添加如下头文件(按需添加)即可: #include <openssl/bio.h> #include <openssl/ssl.h> #include <openssl/err.h> 附录: 关于openssl的编译选项的解读: 全局选项 第一类是全局性选项: --openssldir=OPENSSLDIR 安装目次,默认是 /usr/local/ssl . --prefix=PREFIX 设置 lib include bin 目次的前缀,默认为 OPENSSLDIR 目次. --install_prefix=DESTDIR 设置安装时以此目次作为"根"目次,通常用于打包,默认为空. zlib threads shared asm enable-sse2 gmp rfc3779 krb5 ssl dso [提示]为了安装Apache的mod_ssl成功,SSLv2/SSLv3/TLS都必需开启. 算法选项 第二类用于禁用crypto目录下相应的子目录(主要是各种算法).虽然理论上这些子目录都可以通过"no-*"语法禁用,但是实际上,为了能够最小安装libcrypto,libssl,openssl,其中的大部分目录都必须保存,实际可选的目录仅有如下这些: no-md2,no-md4,no-mdc2,no-ripemd 这些都是摘要算法,寄义一目了然. no-des,no-rc2,no-rc4,no-rc5,no-idea,no-bf,no-cast,no-camellia 这些都是对称加密算法,寄义一目了然."bf"是"Blowfish"的意思. no-ec,no-dsa,no-ecdsa,no-dh,no-ecdh 这些都是纰谬称加密算法,含义一目了然. no-comp 数据压缩算法.因为目前实际上并没有压缩算法,所以只是界说了一些空接口. no-store 工具存储功能. 更多细节可以查看 crypto/store/README 文件. 更多OpenSSL相关内容可以查看以下的有用链接:? 使用 OpenSSL 敕令行构建 CA 及证书? Ubuntu安装OpenSSL? 通过OpenSSL提供FTP+SSL/TLS认证功能,并实现平安数据传输 Linux下使用OpenSSL天生证书 应用OpenSSL签署多域名证书 在OpenSSL中添加自界说加密算法? OpenSSL 的详细先容:请点这里 本文永远更新链接地址: 更多LINUX教程,尽在编程之家PHP学院专栏。欢迎交流! (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |