2018年2月起,github 只支持TLS1.2版本,需要更新git.
由於linux yum 源版本比較久,通過源碼安裝。
遇到一些問題,先總結如下:
大部分系統上都默認安裝了 git ,openssl,openssh,curl等,但是版本較低。
更新git 支持tls1.2實際上就是更新openssl.
更新完成之后可以通過git config --list 判斷是否支持tls1.2
更新openssl之后導致低版本的openssh,curl不能使用,順便openssh,curl也源碼安轉了高版本。
安裝curl時遇到問題,
make[2]: Entering directory `/software/curl/curl-7.55.1/lib' CC vtls/libcurl_la-openssl.lo vtls/openssl.c: In function ‘Curl_ossl_seed’: vtls/openssl.c:276:5: error: implicit declaration of function ‘RAND_egd’ [-Werror=implicit-function-declaration] int ret = RAND_egd(data->set.str[STRING_SSL_EGDSOCKET]? ^ cc1: some warnings being treated as errors make[2]: *** [vtls/libcurl_la-openssl.lo] Error 1 make[2]: Leaving directory `/software/curl/curl-7.55.1/lib' make[1]: *** [all] Error 2 make[1]: Leaving directory `/software/curl/curl-7.55.1/lib' make: *** [all-recursive] Error 1
找到原因是本身系統自帶的openssl 和源碼安轉的openssl的配置不一致導致的。
將系統自帶的openssl 刪除了。編譯成功。
系統自帶的openssl被許多應用ldd,刪除時需要特別注意。
我就是傻乎乎的rpm -e openssl,刪除了,導致ssh不能使用。又重新安裝的openssh。
tcpdump 也依賴libcrypto.so.10,還好可以通過創建這個軟連接解決。
注意修改/etc/ld.so.conf中的加載庫目錄的優先級,修改完之后別忘了ldconfig.
假如這些方式都不行,只能更新安裝源碼了。
目前看,受影響需要安裝源碼的就是openssh,curl。
注意:源碼安裝的時候,看一下./configure 配置時是否有-with-ssl選項,指向新版本安裝的配置,ssl默認安裝位置一般是/usr/local.
所以./configure -with-ssl=/usr/local
openssh 安裝之后,sshd服務的配置文件也需要修改。
vim /usr/local/etc/sshd_config
PermitRootLogin yes #修改這一行。
新安裝的路徑是/us/local/sbin/sshd,如果還想使用service sshd restart 命令,需要修改/etc/init.d/sshd腳本。
源目錄中 ,修改一下文件的路徑等,替換到/etc/init.d/sshd腳本。
修改基本就是以下幾處: