在Linux下安装GmSSL
本文屬于《GmSSL國密加密算法庫使用系列教程》之一,歡迎查看其它文章。
在Linux下安裝GmSSL
- 一、關于GmSSL
- 二、解決與系統OpenSSL沖突的問題
- 三、GmSSL源碼準備
- 四、編譯與安裝GmSSL
- 1、解壓并進入目錄
- 2、編譯選項
- 3、編譯
- 4、安裝
- 5、配置環境變量
一、關于GmSSL
GmSSL是一個開源的密碼工具箱,支持SM2/SM3/SM4/SM9/ZUC等國密(國家商用密碼)算法、SM2國密數字證書及基于SM2證書的SSL/TLS安全通信協議,支持國密硬件密碼設備,提供符合國密規范的編程接口與命令行工具,可以用于構建PKI/CA、安全通信、數據加密等符合國密標準的安全應用。GmSSL項目是OpenSSL項目的分支,并與OpenSSL保持接口兼容。因此GmSSL可以替代應用中的OpenSSL組件,并使應用自動具備基于國密的安全能力。GmSSL項目采用對商業應用友好的類BSD開源許可證,開源且可以用于閉源的商業應用。
GmSSL項目由北京大學關志副研究員的密碼學研究組開發維護,項目源碼托管于GitHub。自2014年發布以來,GmSSL已經在多個項目和產品中獲得部署與應用,并獲得2015年度“一銘杯”中國Linux軟件大賽二等獎(年度最高獎項)與開源中國密碼類推薦項目。GmSSL項目的核心目標是通過開源的密碼技術推動國內網絡空間安全建設。
以上內容摘抄自GmSSL官網:http://gmssl.org/
大家都知道OpenSSL,主要是提供國際加密算法庫。但是在最新的OpenSSL 1.1.1以上版本,已經對國密算法提供了支持。
OpenSSL、GmSSL這倆提供的國密算法庫,去看了下代碼,代碼實現是不一樣的,屬于條條大路通羅馬。
二、解決與系統OpenSSL沖突的問題
GmSSL是支持國密算法和標準的OpenSSL分支,也就是說GmSSL是在OpenSSL代碼基礎上添加的國密算法。
因此為了兼容OpenSSL,GmSSL編譯后生成的so文件名稱與OpenSSL一致,都是libcrypto.so。
可能存在的問題:
Linux上很多軟件都依賴于系統中的OpenSSL庫。若你編譯安裝的GmSSL版本,其基于的OpenSSL分支版本,與系統中的OpenSSL版本不一致,便會產生沖突,很容易導致這些軟件不可用。
最簡單有效的辦法:將GmSSL編譯為靜態庫。
GmSSL命令行工具,以及我們基于該靜態庫開發的程序,直接內部就集成了GmSSL的二進制碼,不需要去查找庫了,也就不會與系統中OpenSSL產生沖突。
在安裝GmSSL時,安裝到指定的目錄下,如/usr/local/gmssl,與系統中OpenSSL路徑保持獨立。
這樣,即從文件路徑和運行時,兩方面保證了GmSSL與OpenSSL不會沖突,并保持使用上的相互獨立性。這的確是最完美的解決辦法。
三、GmSSL源碼準備
下載GmSSL源碼:https://github.com/guanzhi/GmSSL
四、編譯與安裝GmSSL
以下測試環境為Ubuntu 16.04。
1、解壓并進入目錄
解壓源碼
unzip GmSSL-master.zip進入源碼目錄
cd GmSSL-master/2、編譯選項
配置安裝路徑,編譯為靜態庫
./config --prefix=/usr/local/gmssl --openssldir=/usr/local/gmssl no-shared注:–prefix表示安裝路徑;no-shared 表示只編譯靜態庫;默認生成64位庫。
3、編譯
make4、安裝
make install若報錯:
Cannot create directory /usr/local/gmssl: No such file or directory是因為當前用戶無權限對該路徑進行寫入。
再次執行如下,即可解決。
sudo make installGmSSL安裝目錄如下:
5、配置環境變量
在~/.bashrc文件中,添加GmSSL命令行工具路徑。
vim ~/.bashrc在文件末尾追加如下內容:
export PATH=$PATH:/usr/local/gmssl/bin然后執行
source ~/.bashrc輸入命令,查看GmSSL版本
gmssl version -a并且與OpenSSL不沖突,至此,GmSSL安裝完畢。
若對你有幫助,歡迎點贊、收藏、評論,你的支持就是我的最大動力!!!
同時,阿超為大家準備了豐富的學習資料,歡迎關注公眾號“超哥學編程”,即可領取。
總結
以上是生活随笔為你收集整理的在Linux下安装GmSSL的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: swap关于指针的使用
- 下一篇: 【软件开发底层知识修炼】二十二 ABI-