2019年3月24日 星期日

linux mint 升級 openssl

Openssl:
1. 至官網下載原始碼 https://github.com/openssl/openssl
2. 解壓縮, 並進入目錄
3. 執行 ./config
4. 執行 make
5. 執行 sudo make install
預設程式庫會被安裝至 /usr/local/lib, 導致 openssl 找不到 libssl.so.3 及 libcrypto.so.3 等動態程式庫, 無法執行, 只要將符號連結過去就可以解決問題:
    sudo ln -sf /usr/local/lib/libcrypto.so.3  /usr/lib
    sudo ln -sf /usr/local/lib/libssl.so.3         /usr/lib

Libressl:
1. 這是另一個源出於 Oenssl 的分支, 程式碼是相容的, 號稱刪除一些不必要的程式碼, 讓它更精減, 目標也要讓程式更安全可靠,  編譯的方式大同小異, 參考文章: http://linuxg.net/how-to-install-libressl-2-1-6-on-linux-systems , 可到官網下載源碼:  https://ftp.openbsd.org/pub/OpenBSD/LibreSSL/libressl-2.9.0.tar.gz
2. 解壓縮, 並進入目錄
3. 執行 ./configure
4. 執行 make
5. 執行 sudo make install
6. 執行 sudo ldconfig
預設程式庫也是安裝至 /usr/local/lib, 如果導致 openssl 找不到 libssl.so.45 及 libcrypto.so.45 等動態程式庫, 只要將符號連結過去就可以解決問題:
    sudo ln -sf /usr/local/lib/libcrypto.so.45.0.1  /usr/lib/libcrypto.so.45
    sudo ln -sf /usr/local/lib/libssl.so.47.0.1         /usr/lib/libssl.so.45

編譯程式時要加上選項參數  -L/usr/local/lib -lssl -lcrypto, 例如:
g++   https.c -L/usr/local/lib -lssl -lcrypto  -pthread -o https
或是編寫一個簡單的 Makefile
#Makefile to link with ssl, crypto, pthead library
https:
    g++  https.c -L/usr/local/lib -lssl -lcrypto -pthread -o$@
clean:
    rm  -f  https
之後只要下一個命令, 不用再打那麼多字
make

Boringssl:
1. 同樣源自於 Openssl 的另一分支 , 由 google 負責維護的 tls/ssl 程式庫, 首先要安裝 cmake 及 golang 兩個必要開發工具:
     sudo apt-get install cmake golang
2. 到官網用 git 下載源碼, 複製整個 boringssl 目錄
     cd $HOME/Downloads
     git clone https://boringssl.googlesource.com/boringssl
3. 進入目錄, 建個子目錄 build, 進入子目錄 build,  cmake .. ,  make
     cd $HOME/Downloads/boringss
     mkdir build
     cd build
     cmake ..
     make
4. 例如要編譯 c 聯結 Boringssl 程式庫, 可以進到工作目錄, 把編譯好的程式庫複製過來作聯結:
     cd $HOME/work/c/https
     cp $HOME/Downloads/boringssl/build/ssl/libssl.a   .
     cp $HOME/Downloads/boringssl/build/crypto/libcrypto.a   .
     g++   https.c    -L.   -lssl   -lcrypto   -pthread
   

沒有留言: