OSX El Capitan에 openssl-1.0.2l을 설치하고 Python의 _ssl.so도 업데이트하십시오.
2022-10-04 last update
7 minutes reading OSXELCapitan openssl 파이썬 MacOSXOSX El Capitan에 openssl-1.0.2l을 설치 한 기록.
내용은 OSX Yosemite에 openssl-1.0.2f를 설치하여 Python _ssl.so도 업데이트합니다.와 같다.
OSX El Capitan의 OpenSSL은 0.9.8계이지만, 2015년 12월 31일에 지원이 종료되고 있다.
OS X El Capitan의 릴리스가 2015년 9월 30일로, 그 해 말에는 EOL이 되는 OpenSSL 0.9.8zh를 번들해 오는 것은 어떨까.
그건 그렇고, OS X El Capitan의 openssl은 version 명령에 대해
라는 출력을 반환합니다. 배포되고 있는 OpenSSL 0.9.8zh 는
openssl-1.0.2l 빌드
32bit 버전과 64bit 버전을 두 번 나누어 빌드하고 lipo에서 Univesal Binary로 만든다.
컴파일 옵션으로 -arch x86_64 -xarch i386 로 multilib 에 할 수 있을까 생각하면 , 컴파일로 라가 나오기 위해 이런 방법을 취하고 있다.
테스트
오류가 없으면 OK
설치
기본/usr/local/ssl에 설치됩니다.
소스 트리로 돌아가서 32bit 버전을 빌드
설치
문서는 불필요하므로 make install_sw 를 실행한다.
lipo로 Univesal Binary를 만듭니다.
향후 프로그램을 빌드할 때/usr/local/ssl에 있는 openssl을 사용하면 1.0.2계열의 openssl이 링크된다.
파이썬 SSL 라이브러리를 업데이트합니다.
개발 환경이
htps //w w. py 응. 오 rg / 드 w ぉ ds / ぇ あせ / py 텐 - 2710 / 로부터 소스 파일을 얻는다.
실은, 원하는 것은
python 으로
이러한 sitecustomize.py를 만들고/Library/Python/2.7/lib-dynload를 검색 경로에 추가합니다.
/Library/Python/2.7/site-packages/sitecustomize.py
동작 확인.
내용은 OSX Yosemite에 openssl-1.0.2f를 설치하여 Python _ssl.so도 업데이트합니다.와 같다.
OSX El Capitan의 OpenSSL은 0.9.8계이지만, 2015년 12월 31일에 지원이 종료되고 있다.
OS X El Capitan의 릴리스가 2015년 9월 30일로, 그 해 말에는 EOL이 되는 OpenSSL 0.9.8zh를 번들해 오는 것은 어떨까.
그건 그렇고, OS X El Capitan의 openssl은 version 명령에 대해
$ /usr/bin/openssl version
OpenSSL 0.9.8zh 14 Jan 2016
라는 출력을 반환합니다. 배포되고 있는 OpenSSL 0.9.8zh 는
OpenSSL 0.9.8zh 14 Jan 2016
openssl-1.0.2l 빌드
32bit 버전과 64bit 버전을 두 번 나누어 빌드하고 lipo에서 Univesal Binary로 만든다.
컴파일 옵션으로 -arch x86_64 -xarch i386 로 multilib 에 할 수 있을까 생각하면 , 컴파일로 라가 나오기 위해 이런 방법을 취하고 있다.
$ ./Configure shared darwin64-x86_64-cc
$ make
테스트
$ make test
오류가 없으면 OK
설치
기본/usr/local/ssl에 설치됩니다.
$ sudo make install
$ cd /usr/local/ssl
$ sudo mkdir bin64
$ sudo sh -c 'cd bin && find . -print | cpio -pdmu ../bin64'
$ sudo mkdir lib64
$ sudo sh -c 'cd lib && find . -print | cpio -pdmu ../lib64'
소스 트리로 돌아가서 32bit 버전을 빌드
$ make clean
$ ./Configure shared darwin-i386-cc
$ make
설치
문서는 불필요하므로 make install_sw 를 실행한다.
$ sudo make install_sw
$ cd /usr/local/ssl
$ sudo mkdir bin32
$ sudo sh -c 'cd bin && find . -print | cpio -pdmu ../bin32'
$ sudo mkdir lib32
$ sudo sh -c 'cd lib && find . -print | cpio -pdmu ../lib32'
lipo로 Univesal Binary를 만듭니다.
$ cd /usr/local/ssl
$ sudo lipo -create bin{32,64}/openssl -output bin/openssl
$ sudo lipo -create lib{32,64}/libcrypto.a -output lib/libcrypto.a
$ sudo lipo -create lib{32,64}/libssl.a -output lib/libssl.a
$ find lib64 -type f -name '*.dylib' | while read file ; do echo lipo -create $(echo "$file" | sed 's/64/{32,64}/') -output $(echo "$file" | sed 's/64//'); done | sudo sh
$ sudo rm -r bin{32,64} lib{32,64}
향후 프로그램을 빌드할 때/usr/local/ssl에 있는 openssl을 사용하면 1.0.2계열의 openssl이 링크된다.
파이썬 SSL 라이브러리를 업데이트합니다.
개발 환경이
xcode-select --install
되지 않으면 configure
에서 헤더를 찾을 수 없어 오류가 발생하므로 주의.$ sudo xcode-select --install
Password:
xcode-select: note: install requested for command line developer tools
htps //w w. py 응. 오 rg / 드 w ぉ ds / ぇ あせ / py 텐 - 2710 / 로부터 소스 파일을 얻는다.
tar xfz Python-2.7.10.tgz
cd Python-2.7.10
CC=cc \
CPPFLAGS=-I/usr/local/ssl/include \
LDFLAGS='-L/usr/local/ssl/lib -Wl,-rpath,/usr/local/ssl/lib' \
./configure --enable-framework --enable-universalsdk --with-universal-archs=intel
$ make
실은, 원하는 것은
_ssl.so
뿐.$ find . -name _ssl.so
./build/lib.macosx-10.5-intel-2.7/_ssl.so
python 으로
import ssl
했을 때에, 이 _ssl.so
가 로드 되도록(듯이) 하면 된다.$ sudo mkdir /Library/Python/2.7/lib-dynload
$ sudo cp build/lib.macosx-10.5-intel-2.7/_ssl.so /Library/Python/2.7/lib-dynload
이러한 sitecustomize.py를 만들고/Library/Python/2.7/lib-dynload를 검색 경로에 추가합니다.
/Library/Python/2.7/site-packages/sitecustomize.py
import sys
sys.path.insert(0, '/Library/Python/2.7/lib-dynload')
동작 확인.
$ python
>>> import ssl
>>> ssl.OPENSSL_VERSION
'OpenSSL 1.0.2l 25 May 2017'