安装GMSSL
安裝GMSSL
一、關于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
==碼云(推薦):==https://gitee.com/jkuang/GmSSL?_from=gitee_search
四、編譯與安裝GmSSL
1、解壓并進入目錄(如果是git clone的直接進入目錄就可以了)
解壓源碼
進入源碼目錄
cd GmSSL-master/2、編譯選項
配置安裝路徑,編譯為靜態庫
注:–prefix表示安裝路徑;no-shared 表示只編譯靜態庫;默認生成64位庫。
3、編譯
make4、安裝
make install若報錯:
Cannot create directory /usr/local/gmssl: No such file or directory是因為當前用戶無權限對該路徑進行寫入。
再次執行如下,即可解決。
sudo make install五、配置環境變量
在~/.bashrc文件中,添加GmSSL命令行工具路徑。
vim ~/.bashrc在文件末尾追加如下內容:
export PATH=$PATH:/usr/local/gmssl/bin然后執行
source ~/.bashrc輸入命令,查看GmSSL版本
gmssl version -a出現如下畫面:
[root@10-18-93-202 GmSSL]# gmssl version -a GmSSL 2.5.4 - OpenSSL 1.1.0d 19 Jun 2019 built on: reproducible build, date unspecified platform: linux-x86_64 compiler: gcc -DDSO_DLFCN -DHAVE_DLFCN_H -DNDEBUG -DOPENSSL_THREADS -DOPENSSL_NO_DYNAMIC_ENGINE -DOPENSSL_PIC -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DRC4_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -DPADLOCK_ASM -DGMI_ASM -DPOLY1305_ASM -DOPENSSLDIR="\"/usr/local/gmssl\"" -DENGINESDIR="\"/usr/local/gmssl/lib/engines-1.1\"" -Wa,--noexecstack OPENSSLDIR: "/usr/local/gmssl" ENGINESDIR: "/usr/local/gmssl/lib/engines-1.1"并且與OpenSSL不沖突,至此,GmSSL安裝完畢。
總結
- 上一篇: 免费中文api文档!免费java帮助文档
- 下一篇: 迎战校招训练题