添加curl的openssl的功能,實現https的正確訪問


公司開發部遇到一個難題,服務器環境的curl的功能參數無法支持ssl,那么很多功能將會無法實現。那么好吧,這個問題只好拋到運維這邊了,我也是個新手,下邊的見解純屬個人分析(如有問題,歡迎討論):

 

首先系統:Centos 6.5 x86_64,

服務器版本的默認安裝路徑:curl在/usr下,openssl在/usr下   (當然,版本都是挺低的,yum更新后,版本還是很低,而且理所當然的,yum安裝是無法帶參數的,那么很顯然,更新后curl還是無法支持openssl)

 

安裝所有常用的開發包yum -y install ntp make openssl openssl-devel pcre pcre-devel libpng libpng-devel libjpeg-6b libjpeg-devel-6b freetype freetype-devel gd gd-devel zlib zlib-devel gcc gcc-c++ libXpm libXpm-devel ncurses ncurses-devel libmcrypt libmcrypt-devel libxml2 libxml2-devel imake autoconf automake screen sysstat compat-libstdc++-33    curl curl-devel python

(這個是為了以防刪掉openssl或者curl的時候出現各種問題的時候,你還有合適的工具可以修復,不要小看以上的東西,如果你試過yum和rpm和wget,scp甚至是ssh都不能使用的時候,你就會發現,做好一個備份和安裝好必要的環境是多么的重要)

 


卸載舊版本
rpm -e --nodeps curl
yum install curl -y

 


添加ssl庫的快速讀取識別
vi /etc/ld.so.conf
在這里面將openssl生成的庫文件所在目錄加入,使用命令ldconfig刷新緩存

這里用find / -name openssl查看安裝目錄,然后找到庫文件目錄,這里是/usr/lib64/openssl/)

 (這里如果不添加以上的ssl庫參數,那么你在configure會提示

SSL support:     enabled (OpenSSL)

當然,我們是應該很開心的,但是,在make和make install的時候,你會發現扯淡的是

curl -V

curl 7.37.0 (x86_64-unknown-linux-gnu) libcurl/7.37.0  zlib/1.2.3 libidn/1.18

根本就沒有openssl的支持好不好!,這是一個很蛋疼的事情,為此我嘗試了多個版本,用正確的編譯方式,結果都是前邊支持,后邊不支持。當然,還是有偶然的機遇下,在多個版本的安裝和卸載后,測試機完美的運行了。當然,這也是我花了一個禮拜的時間堅持下的原因,要不是我偶然成功了,誰會花這么多的時間琢磨這一個問題呢。當然,我記錄了測試機的安裝步驟,但是。。在線上機根本就運行不了,同樣的系統,同樣的配置,同樣的軟件,同樣的操作,這也是我總結出,我的方法可能只是偶然找到ssl的庫文件了。

 

安裝新版本的curl
wget http://curl.haxx.se/download/curl-7.37.0.tar.gz      (當然,這個路徑換一個版本號就可以下載其他版本,測試32位直接安裝成功,64位還需要添加以上的ssl庫快讀參數)
./configure --prefix=/usr --with-ssl=/usr      (必須確認ssl的安裝路徑,而且必須添加這個參數,默認無)
make
make install

 【

這些安裝的時候就會找到ssl的庫文件,那么就可以編譯成功的了


curl -V
滿足條件 libcurl/7.37.0 OpenSSL/1.0.1e同時識別,整個環境所使用的curl就具備了支持ssl的功能了

 

【還有要注意的是,如果不行,可以重復第二遍新版本的重新編譯,當然第三遍不行就不用了,可以試試看其他版本,我是7.36和7.37其中一個可以用的】


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM