《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
zlib-dynamic
no-zlib 使用靜態的zlib壓縮庫、使用動態的zlib壓縮庫、不使用zlib壓縮功效.
threads
no-threads 是否編譯支持多線程的庫.默認支持.
shared
no-shared 是否生成動態銜接庫.
asm
no-asm 是否在編譯進程中使用匯編代碼加快編譯進程.
enable-sse2
no-sse2 啟用/禁用SSE2指令集加速.如果你的CPU支持SSE2指令集,就可以打開,不然就要關閉.
gmp
no-gmp 啟用/禁用GMP庫
rfc3779
no-rfc3779 啟用/禁用實現X509v3證書的IP地址擴大
krb5
no-krb5 啟用/禁用 Kerberos 5 支持
ssl
no-ssl
ssl2
ssl3
no-ssl2
no-ssl3
tls
no-tls 啟用/禁用 SSL(包括了SSL2/SSL3) TLS 協議支持.
dso
no-dso 啟用/禁用挪用其它動態鏈接庫的功能.[提示]no-dso僅在no-shared的前提下可用.
[提示]為了安裝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 的詳細先容:請點這里
OpenSSL 的下載地址:請點這里
本文永遠更新鏈接地址:
更多LINUX教程,盡在維易PHP學院專欄。歡迎交流!
轉載請注明本頁網址:
http://www.snjht.com/jiaocheng/6560.html