curl (35) SSL connect error 対処法
CentOS6のcurlは基本的に古い
Centosも7が主流になった今。Centos6のライブラリは古いものになりつつあります。
とはいえ、Centos7はコマンドも違うし、いきなり本番運用に使うにはハードルが高い。
結局、慣れ親しんだCentos6を使ってしまうのです。
TLS1.2への移行で障害が出た
私の場合も例外ではなく、主にCentos6のサーバーをメインで使っているのですが、ここ最近のTLS1.2への移行で障害が出てきたのです。TLS1.2に対応するには、OpenSSLやcurlなどのライブラリバージョンが関係してきます。
バージョンが古いと
curl: (35) SSL connect error
こんなエラーが出て接続できなくなるのです。サーバー側が切り替わる前に、クライアント側もちゃんと対応しておく必要があるのです。対応しておかないと、API通信で障害が発生して運用に支障をきたしてしまいます(><)
対処法
curlをバージョンアップします。
1.curlのバージョン確認
curl -V
[root@localhost ~]# curl -V
curl 7.19.7 (x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/3.19.1 Basic ECC zlib/1.2.3 libidn/1.18 libssh2/1.4.2
Protocols: tftp ftp telnet dict ldap ldaps http file https ftps scp sftp
Features: GSS-Negotiate IDN IPv6 Largefile NTLM SSL libz
2.curlダウンロード&解凍
インストールディレクトリを変えたいので手動でインストールします。
wget https://curl.haxx.se/download/curl-7.60.0.tar.gz
tar xzf curl-7.60.0.tar.gz
cd curl-7.60.0
3.コンパイル&インストール
configureするときが非常に重要。既存を上書きしないようにする。
./configure –enable-libcurl-option –prefix=/usr/local/curl-7.60.0 # ←重要
make
make install
4.既存curlの退避&シンボリックリンク作成
既存curlの場所を確認
which curl
既存curlを退避
mv /usr/bin/curl /usr/bin/curl.org
シンボリックリンク作成
ln -s /usr/local/curl-7.60.0/bin/curl /usr/bin/curl
5.curlのバージョン確認
[root@localhost ~]# curl -V
curl 7.60.0 (x86_64-pc-linux-gnu) libcurl/7.60.0 OpenSSL/1.0.1e zlib/1.2.3
Release-Date: 2018-05-16
Protocols: dict file ftp ftps gopher http https imap imaps pop3 pop3s rtsp smb smbs smtp smtps telnet tftp
Features: AsynchDNS IPv6 Largefile NTLM NTLM_WB SSL libz UnixSockets HTTPS-proxy
Protocolsにhttpsが含まれていない場合はOpensslが不足している!
6.https確認
curl https://接続先ドメイン/
OKになれば対応完了!
[PR]root権限付きVPS一覧
ディスカッション
コメント一覧
まだ、コメントがありません