更新git 支持TLS1.2

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脚本。

修改基本就是以下几处:

原文地址:https://www.cnblogs.com/blueyunchao0618/p/11190674.html