如何升級Mac中自帶的openssl ? (過程總結)

不言
發布: 2018-09-07 14:41:39
原創
3296 人瀏覽過

如何升級Mac中自帶的openssl ?下面這篇文章就來跟大家介紹關於Mac中自備的openssl升級過程,有需要的可以參考一下。

由於Mac自帶的 openssl 太老了,所以,這裡因為安裝python擴充包需要升級到高版本,所以,總結下升級過程。

一、安裝openssl

首先,來看看我們的openssl 的版本和目錄:

->  ~ openssl version
OpenSSL 0.9.8zh 14 Jan 2016

->  ~ which openssl
/usr/bin/openssl
->  ~
登入後複製

透過上面的查看,明顯我們的版本號碼太低了。

依照上面的步驟,我們先更新homebrew

brew update
登入後複製

安裝:

brew install openssl

# 重新安装
# brew reinstall openssl
登入後複製

安裝成功後:

~ brew reinstall openssl
==> Reinstalling openssl
==> Downloading https://homebrew.bintray.com/bottles/openssl-1.0.2p.el_capitan.bottle.tar.gz
Already downloaded: /Users/kaiyiwang/Library/Caches/Homebrew/downloads/96bc2acd84d0fe609dcbe4c6436c864808f7e8f26f2f12111f552f5972c3840a--openssl-1.0.2p.el_capitan.bottle.tar.gz
==> Pouring openssl-1.0.2p.el_capitan.bottle.tar.gz
==> Caveats
A CA file has been bootstrapped using certificates from the SystemRoots
keychain. To add additional certificates (e.g. the certificates added in
the System keychain), place .pem files in
  /usr/local/etc/openssl/certs

and run
  /usr/local/opt/openssl/bin/c_rehash

openssl is keg-only, which means it was not symlinked into /usr/local,
because Apple has deprecated use of OpenSSL in favor of its own TLS and crypto libraries.

If you need to have openssl first in your PATH run:
  echo 'export PATH="/usr/local/opt/openssl/bin:$PATH"' >> ~/.zshrc

For compilers to find openssl you may need to set:
  export LDFLAGS="-L/usr/local/opt/openssl/lib"
  export CPPFLAGS="-I/usr/local/opt/openssl/include"

==> Summary
  /usr/local/Cellar/openssl/1.0.2p: 1,793 files, 12.2MB
登入後複製

說明我們成功的將openssl安裝到/usr/local/Cellar/openssl/1.0.2p

二、更換舊的

不過,我們還有最後一步,就是當我們使用openssl時,使用的是我們用homebrew新下載的openssl。為了達到這個目的,我們有兩種方法。

將homebrew下載的openssl軟體連結/usr/bin/openssl目錄下。這裡,我們先將它保存一份老的,然後再軟鏈接新下載的。

$ mv /usr/bin/openssl /usr/bin/openssl_old
mv: rename /usr/bin/openssl to /usr/bin/openssl_old: Operation not permitted
$ ln -s /usr/local/Cellar/openssl/1.0.2p/bin/openssl /usr/bin/openssl
ln: /usr/bin/openssl: Operation not permitted
登入後複製

Operation not permitted提示沒有權限操作,對/usr/bin目錄下的東西,我已經遇到過幾次這個問題了,於是繼續google,在stackoverflow上找到了Operation Not Permitted when on root El capitan (rootless disabled)

重啟系統,當啟動的時候我們同時按下cmd r進入Recovery模式,之後選擇實用工具=> 終端,在終端輸入如下指令,介面檔案系統的鎖定,並且重新啟動電腦(cmd r之後,會進入另一個選擇系統啟動的介面,在這個介面裡面不要馬上重新啟動,先找到終端,在終端中輸入csrutil disable):

$ csrutil disable
$ reboot
登入後複製

最後,我們執行前面兩個指令,查看版本。

$ sudo mv /usr/bin/openssl /usr/bin/openssl_old
$ sudo ln -s /usr/local/Cellar/openssl/1.0.2p/bin/openssl /usr/bin/openssl
$ openssl version
OpenSSL 1.0.2p  14 Aug 2018

➜  ~ which openssl
/usr/local/opt/openssl/bin/openssl
登入後複製

如何升級Mac中自帶的openssl ? (過程總結)

這樣,我們的openssl升級成功了。不過,為了安全起見,我還是重新啟動電腦,然後重新開啟了csrutil。

csrutil enable
reboot
登入後複製

相關推薦:

macos - Mac如何為自備的PHP進行大版本升級?

以上是如何升級Mac中自帶的openssl ? (過程總結)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板