Configure 腳本文件
- 使得OpenSSL可以適應多種不同的系統平臺和多達幾十種不同的編譯器。Configure指令還可以使OpenSSL在編譯的時候具備組件的選擇功能,比如可以選擇支持或者不支持某種算法或者協議等,這使得OpenSSL具有很大的靈活性,比如在空間有限的嵌入式系統移植中就具備獨特的優勢。定制化選擇對應的組件
- Configure指令還有其他一些靈活的功能,比如選擇OpenSSL安裝目錄、是否支持匯編編譯(通常為了加快速度)、是否支持硬件或者某種特定的硬件、編譯的時候是否生成動態鏈接庫、是否支持動態加載其他動態鏈接庫,等等。
- Configure指令事實上根據配置選項,重新改寫和生成了opensslv.h,opensslconf.h,Makefile.sl三個文件,從而達到配置的目的。在Windows下,還會生成錯誤信息提示文件buildinf.h,該文件在Crypto根目錄下
使用方式
- 直接的方式:例如win: Perl Configure VC-NIN32;Configure可以帶很多參數,比如要在編譯的版本中去掉調用其他動態鏈接庫的功能,就可以使用下面的Configure指令??Perl Configure VC-NIN32? no-dso
- 間接的方式,如在Linux系統中,就是通過運行config指令來調用Configure指令的。事實上,在這種情況下,config指令自動提取了一些環境變量作為Configure的參數執行,比如自動識別系統的內核版本和編譯器并設定參數等。
參數介紹
基于Linux系統的編譯和安裝
-
所以,在Linux系統下編譯完OpenSSL后,我們會得到一個可執行程序openssl,兩個鏈接庫libcrypto.a和libssl.a,如果你選擇編譯為動態鏈接庫的模式,還會得到另外兩個有用的動態鏈接庫libcrypto.so.0.9.7和libssl.so.0.9.7文件。此外,在使用OpenSSL編程的時候,你還需要用到include目錄下的頭文件。?
使用Configure指令手動配置安裝環境
- 參考鏈接?
- 從零開始配置服務器密碼機的開發環境_CHYabc123456hh的博客-CSDN博客? ?
- 安裝?sudo apt-get install openssl
- 安裝?sudo apt-get install libssl-dev
- Linux(centos7)下安裝OpenSSL 安裝詳解_木亦汐丫-CSDN博客?
- 使用./config或者./Configure指令配置環境,生成編譯安裝腳本;
- 使用make指令執行編譯任務;
- 使用make test指令測試編譯好的程序;
- 使用make install指令安裝OpenSSL到默認的/usr/local目錄? ?需要具備root權限,在命令前面加上sudo
- /source/index.html
- .github - openssl/openssl - Sourcegraph?
- OpenSSL所有使用的東西都安裝在默認的路徑/usr/local/ssl目錄下面,進入該目錄,首先會發現一個opensl.cnf文件,這就是以后經常會用到的OpenSSL配置文件,主要是用于證書生成和管理方面的。
- Bin子目錄存放了OpenSSL可執行程序,也就是指令;
- Include目錄存放了使用OpenSSL開發的時候需要的頭文件;
- Lib目錄存放了libcrypto.a和libssl.a兩個庫文件;
- Man目錄是OpenSSL的使用文檔。
?使用config指令自動配置OpenSSL系統編譯選項
- config指令是首先的選擇,它能夠自動識別你的系統內核和一些配置,比如編譯器,但是又給了你不少靈活的選項。config指令執行的方式如下:./config [option]
- OpenSSL的0.9.7版本中有效的選項在表5.2中列了出來,你會發現,所有的選項都是前面介紹過的Configure選項中存在的,不過選項減少了一些。這很正常,因為config指令就是調用了Configure,不過它首先自動收集了一些系統的信息作為調用Configure的參數。所以,config指令所有這些參數的格式和用法也和Configure同名參數的格式和用法是相同的
測試config收集到的信息?
- ?使用命令 ./config-t?
- 如果編譯失敗需要重新進行編譯,使用 make clean命令 并使用make繼續編譯
?
- 使用openssl進行編程的時候 引入頭文件 需要采用如下的形式 #include<openssl/ssl.h> 需要加上openssl 避免同名干擾的問題?