Homebrew를 사용하여 OS X에서 OpenSSL 업데이트


81

MacOS X 10.7.5를 사용하고 있으며 핸드 셰이크 실패 로 인해 최신 OpenSSL 버전이 필요합니다 . 인터넷에는 몇 가지 자습서가 있으며 다음을 시도했습니다.

brew install openssl
brew link openssl --force

그럼에도 불구하고 작동하지 않습니다.

openssl version
OpenSSL 0.9.8r 8 Feb 2011

brew unlink openssl && brew link openssl --force
Unlinking /usr/local/Cellar/openssl/1.0.1e... 1139 links removed
Linking /usr/local/Cellar/openssl/1.0.1e... 1139 symlinks created

SVN 문제도 해결되지 않았습니다. 어떤 아이디어? MacPorts 방식은 Homebrew를 방해 할 수 있으므로 시도하지 않겠습니다.


1
작동하지 않았다는 점을 기뻐하십시오. 버전 0.9.8r에는 HeartBleed 버그가 발생하지 않았습니다. 2013 년 3 월에 성공적으로 업그레이드 한 경우 생성 한 SSL 인증서가 손상되므로 지금 다시 입력해야합니다. 영향을받는 버전은 heartbleed.com을 참조하십시오.
Houman 2014

3
이 질문은 프로그래밍이나 개발에 관한 것이 아니기 때문에 주제에서 벗어난 것처럼 보입니다. 도움말 센터에서 내가 질문 할 수있는 항목을 참조 하세요 . 아마 슈퍼 사용자 또는 애플 스택 교환 물어 더 나은 장소가 될 것입니다.
jww

답변:


89

Homebrew를 사용하는 경우 / usr / local / bin 이 이미 / usr / bin 앞에 $PATH있거나 적어도 앞에 와야 합니다. 이제 터미널 창에서 실행하는 경우 새 창을 열고 실행 하십시오. 이제 / usr / local / bin 아래에 표시되어야합니다 .brew link --force opensslwhich opensslopenssl


2
을 (를) 설치 1.0.2h_1했지만 정확히 동일한 상황에 있지만 openssl version -a여전히 OpenSSL 0.9.8zg 14 July 2015. 어떤 제안?
Pmpr

84
이 일 때문에 작동하지 않습니다brew link --force openssl Warning: Refusing to link: openssl Linking keg-only openssl means you may end up linking against the insecure, deprecated system OpenSSL while using the headers from Homebrew's openssl. Instead, pass the full include/library paths to your compiler e.g.: -I/usr/local/opt/openssl/include -L/usr/local/opt/openssl/lib
티모

6
@TimoLehto이 문제를 해결할 수 있었습니까? 같은 문제에 직면하고 있고 어디에서나 해결책을 찾을 수없는 것 같습니다
Tuhina Singh

3
@TimoLehto 이것이 '좋은 습관'인지 또는 안전한지 알 수는 없지만 항상 / usr / local / bin에서 / usr / local / opt / openssl / bin / openssl 로의 링크를 만들 수 있습니다. 다음 명령을 사용하여 수행 할 수 있습니다 ln -s /usr/local/opt/openssl/bin/openssl /usr/local/bin/openssl.. 명확하게 말하면, 이것이 안전하거나 올바른 진행 방법이라고 약속 할 수 없습니다.
brunodd

2
이 문제에 대한 자세한 정보 : stackoverflow.com/questions/38670295/...은
ekkis

12

터미널에서 다음을 실행합니다.

export PATH=/usr/local/bin:$PATH
brew link --force openssl

경고가 표시되면 먼저 openssl의 연결을 해제해야 할 수 있습니다. brew unlink openssl

이렇게하면이 상황에 맞는 올바른 openssl을 연결할 수 있습니다. (그리고 .profile을 엉망으로 만들지 않습니다)

@Olaf의 답변과 @Felipe의 의견에 대한 모자 팁. 저와 같은 일부 사람들은 PATH 변수를 꽤 엉망으로 만들 수 있습니다.


9
그냥 말한다Refusing to link: openssl
rogerdpack

12

brew를 사용하여 mac에 openssl을 설치했지만 /usr/local/bin다른 brew가 설치된 bin이있는 위치에는 아무것도 없습니다 . 여기에서 내 신선한 openssl을 찾았습니다.

/usr/local/opt/openssl/bin/openssl

다음과 같이 실행하십시오.

/usr/local/opt/openssl/bin/openssl version

OS X openssl을 업데이트하고 싶지 않지만 일부 OS 항목 또는 기타 타사 앱은 이전 버전에 의존 할 수 있습니다.

나는 또한 더 긴 경로를 신경 쓰지 않습니다. openssl

brew에 의해 설치된 openssl의 위치를 ​​찾는 모든 Google 직원을 위해 여기에 작성하십시오.


6

이 문제가 발생하여 최신 버전의 설치 openssl가 실제로 작동 한다는 것을 발견 했지만 PATH잘못 설정되었습니다. $PATH내 양조 경로 앞에 포트 경로가 있으므로 항상 이전 버전의 openssl.

나를위한 수정 사항 brew은 내 $PATH.

로드하는 위치를 찾으려면 openssl실행 which openssl하고 출력을 기록하십시오. 를 실행할 때 시스템에서 사용중인 버전의 위치가됩니다 openssl. brew"/ usr / local / bin" 의 경로가 아닌 다른 위치에있을 것 입니다. 을 변경 $PATH하고 해당 터미널 탭을 닫은 다음 새 탭을 열고 which openssl. 이제 / usr / local / bin 아래에 다른 경로가 표시됩니다. 이제 실행 openssl version하면 "OpenSSL 1.0.1e 11 Feb 2013"을 설치 한 새 버전이 표시됩니다.


5

openssl 업데이트에 관한 질문에 답하기 위해 다음 단계에 따라 Mac에서 찾은 버전을 최신 openssl 버전 1.0.1e로 성공적으로 업데이트했습니다.

여기에있는 단계를 따랐습니다 : http://foodpicky.com/?p=99

터미널 명령 makemake install 단계에 도달하면 sudo makesudo make install 을 사용해야합니다 ( sudo 없이 수행했고 업데이트하지 않았기 때문에 단계별로 두 번 수행해야했습니다).

도움이 되었기를 바랍니다


3
FYI 현재 1.0.1e (특히 1.0.1a-f)는 심각한 보안 취약점이있는 것으로 알려져 있습니다. 미래의 리더, 메이크업은 반드시 최소한 1.0.1g로 업그레이드 heartbleed.com
SapphireSun

이전 버전은 여전히 나를 위해 보여주고있다 : stackoverflow.com/questions/22974590/...을
quantumpotato

2
마이너스 원 : "... 반드시 sudo make를 사용하십시오 ..." -권한으로 만드는 것이 아닙니다. 당신은make그리고sudo make install필요하다면. 당신은 또한 끔찍한 언급을 인용했습니다. Apple의 OpenSSL 0.9.8을/usr업데이트 된 1.0.x로대체합니다. 바이너리 호환성이 없기 때문에 정말 나쁜 일입니다.
jww

3

OSX10.11에서 php56을 실행하는 로컬 서버에 일부 Wordpress 플러그인을 설치하는 데 문제가있었습니다. SSL을 통한 외부 API 연결에 실패했습니다.

openSSL을 설치해도 문제가 해결되지 않았습니다. 하지만 CURL도 다시 설치해야한다는 것을 알았습니다.

이것은 Homebrew를 사용하여 내 문제를 해결했습니다.

brew rm curl && brew install curl --with-openssl

brew uninstall php56 && brew install php56 --with-homebrew-curl --with-openssl

1

Mac OS X Yosemite에서 brew로 설치 한 후

/ usr / local / opt / openssl / bin / openssl

그러나 링크를 시도 할 때 "통 전용 openssl을 연결하면 안전하지 않은 링크에 연결될 수 있습니다."라는 오류가 계속 발생합니다.

그래서 그냥 이렇게 전체 경로를 제공하여 연결했습니다.

ln -s /usr/local/opt/openssl/bin/openssl /usr/local/bin/openssl

이제 "openssl version -a"를 수행 할 때 버전 OpenSSL 1.0.2o를 표시하고 있습니다. 작동했다고 가정합니다.


-8
  1. 설치 포트 : https://guide.macports.org/
  2. openssl 패키지 설치 또는 업그레이드 : sudo port install openssl또는sudo port upgrade openssl
  3. 그게 openssl version다야, 결과를보기 위해 달려라 .

2
질문은 Homebrew에 관한 것이 었습니다 ... macports는 homebrew가 아닙니다 ... OP는 Mac 포트를 사용하지 않는 것을 선호한다고 말합니다.
Wade Williams

새 버전의 @WadeWilliams mac에서는을 openssl사용하여 Homebrew업데이트 Homebrew할 수 없습니다.을 사용하여 설치하거나 업데이트 할 수 있지만 우선 순위를 지정할 수는 없습니다. 따라서 사용하여 업데이트하는 대신 사용하여 Homebrew업데이트 macports 하고 우선 순위를 지정할 수 있습니다.
Morteza Sepehri Niya
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.