本篇文章更新時間:2019/02/16
如有資訊過時或語誤之處,歡迎使用 Contact 功能通知。
一介資男的 LINE 社群開站囉!歡迎入群聊聊~
如果本站內容對你有幫助,歡迎使用 BFX Pay 加密貨幣 或 新台幣 贊助支持。
更新 macOS 的 OpenSSL 版本
首先,要解決這個問題必須先解決 macOS 下內建的 OpenSSL
OpenSSL 0.9.8zh 14 Jan 2016 built on: Jan 23 2017
因為接下來要使用更新版的 OpenSSL 來編譯過 CURL 來解決這個交握錯誤!
參考網路上的解法是使用 HomeBrew 做更新,如果沒有就安裝一下:
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
使用 brew update && brew upgrade
指令更新一下!
這時,曾經用 brew
安裝過的 OpenSSL 版本就會被更新到最新(連帶其他服務一起),如果沒有就是使用 brew install openssl
指令安裝。 (以上指令操作都不需要管理員 sudo 權限)
不論是更新還是新安裝,brew
的提示都要照著來操作,到這邊要注意那段
LDFLAGS="-L/usr/local/opt/openssl/lib"
CPPFLAGS="-I/usr/local/opt/openssl/include"
這邊就是後面要重新編譯 CURL
會用到的部分,到此已經做好更新 OpenSSL 的部分,接下來就是重新編譯!
新版本的 OpenSSL 資訊如下:
OpenSSL 1.0.2m 2 Nov 2017 built on: reproducible build, date unspecified
重新編譯 CURL
首先到 CURL 的下載頁面找最新版的原始碼下載(目前是:curl 7.56.1, Released on the 23rd of October 2017)
注意,不是下方的 Packages 是 Source Archives
下載到任意位置後解壓縮,然後指令模式下進入該資料夾 curl-7.56.1
,使用下列指令執行編譯組態:
LDFLAGS="-L/usr/local/opt/openssl/lib" CPPFLAGS="-I/usr/local/opt/openssl/include" ./configure --prefix=/Applications/MAMP/Library/
設定
prefix
參數只是要把編譯好的 CURL 服務給導入 MAMP 裡,算是補完吧!若你是因為其他服務或是系統內建版本升級,那就不需要這參數囉。
組態好後再執行 make && make install
如此 CURL 裝入 MAMP 後把 MAMP 重新啟動就大功告成拉! 往後不會看到 routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure
錯誤了~
喔對了,如果你在一開始編譯就噴了一堆錯誤,非常有可能是你需要更新或安裝 Xcode ,在 Mac 環境中他可是很重要的角色啊~
Ref: MAMP SSL error: “error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure”
後記
這個 MAMP 還真是在本機上擔任重要的測試環境角色,只記得對他搞了不少客製化的部分,所以如果沒有太麻煩的更新,我都還是持續的再使用。現在的版本是 v3.5 官網上最新版已經是 v4.2.1 ,真是差距不小XD