How to install latest version of openssl Mac OS X El Capitan
Mia Lopez
I have used brew install openssl to download and install openssl v1.0.2f, however, it comes back saying:
A CA file has been bootstrapped using certificates from the system
keychain. To add additional certificates, place .pem files in /usr/local/etc/openssl/certs
and run /usr/local/opt/openssl/bin/c_rehash
This formula is keg-only, which means it was not symlinked into /usr/local.
Apple has deprecated use of OpenSSL in favor of its own TLS and crypto libraries
Generally there are no consequences of this for you. If you build your
own software and it requires this formula, you'll need to add to your
build variables: LDFLAGS: -L/usr/local/opt/openssl/lib CPPFLAGS: -I/usr/local/opt/openssl/includeAnd when I do openssl version -a it always gives me:
OpenSSL 0.9.8zg 14 July 2015
built on: Jul 31 2015
platform: darwin64-x86_64-llvm
options: bn(64,64) md2(int) rc4(ptr,char) des(idx,cisc,16,int) blowfish(idx)
compiler: -arch x86_64 -fmessage-length=0 -pipe -Wno-trigraphs -fpascal-strings -fasm-blocks -O3 -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -DL_ENDIAN -DMD32_REG_T=int -DOPENSSL_NO_IDEA -DOPENSSL_PIC -DOPENSSL_THREADS -DZLIB -mmacosx-version-min=10.6
OPENSSLDIR: "/System/Library/OpenSSL"How can I replace the old version with the new one? I've searched a lot on how to do this, but the solutions online don't seem to work for me...
29 Answers
Execute following commands:
brew update
brew install openssl
echo 'export PATH="/usr/local/opt/openssl/bin:$PATH"' >> ~/.bash_profile
source ~/.bash_profileYou will have the latest version of openssl installed and accessible from cli (command line/terminal). Since the third command will add export path to .bash_profile, the newly installed version of openssl will be accessible across system restarts.
Only
export PATH=$(brew --prefix openssl)/bin:$PATH in ~/.bash_profilehas worked for me! Thank you mipadi.
3Try creating a symlink, make sure you have openssl installed in /usr/local/include first.
ln -s /usr/local/Cellar/openssl/{version}/include/openssl /usr/local/include/opensslMore info at Openssl with El Capitan.
4I can't reproduce your issue running El Cap + Homebrew 1.0.x
Upgrade to Homebrew 1.0.x, which was released late in September 2016. Specific changes were made in the way openssl is linked. The project is on a more robust release schedule now that it's hit 1.0.
brew uninstall opensslbrew update && brew upgrade && brew cleanup && brew doctorYou should fix any issues raised by brew doctor before proceeding.
brew install opensslNote: Upgrading homebrew will update all your installed packages to their latest versions.
4I reached this page when I searched for information about openssl being keg-only. I believe I have understood the reason why Homebrew is taking this action now. My solution may work for you:
Use the following command to make the new openssl command available (assuming you have adjusted PATH to put /usr/local/bin before /usr/bin):
ln -s /usr/local/opt/openssl/bin/openssl /usr/local/bin/When compiling with openssl, follow Homebrew's advice and use
-I/usr/local/opt/openssl/include -L/usr/local/opt/openssl/libAlternatively, you can make these settings permanent by putting the following lines in your .bash_profile or .bashrc:
export CPATH=/usr/local/opt/openssl/include export LIBRARY_PATH=/usr/local/opt/openssl/lib
this command solve my problem on github CI job and virtualbox
brew install openssl@1.1
cp /usr/local/opt/openssl@1.1/lib/pkgconfig/*.pc /usr/local/lib/pkgconfig/ This is an old question but still answering it in present-day context as many of the above answers may not work now.
The problem is that the Path is still pointing to the old version. Two solutions can be provided for resolution :
- Uninstall old version of openssl package
brew uninstall openssland then reinstall the new version :brew install openssl - point the PATH to the new version of openssl.First install the new version and now(or if) you have installed the latest version, point the path to it:
echo 'export PATH="/usr/local/opt/openssl/bin:$PATH"' >> ~/.bash_profile
You can run brew link openssl to link it into /usr/local, if you don't mind the potential problem highlighted in the warning message. Otherwise, you can add the openssl bin directory to your path:
export PATH=$(brew --prefix openssl)/bin:$PATH 1 To replace the old version with the new one, you need to change the link for it. Type that command to terminal.
brew link --force opensslCheck the version of openssl again. It should be changed.
2