우분투에서 OpenSSL을 소스 코드로 컴파일하여 설치하는 방법
기본 패키지(OpenSSL)가 아닌 사용자가 지정한 경로에 최신 버전을 설치하는 방식으로 진행합니다.
테스트 환경
docker run -it --rm anti1346/ubuntu2204:latest bash
1. 필수 의존성 패키지 설치
OpenSSL 컴파일을 위해 필요한 기본 빌드 도구와 라이브러리를 설치합니다.
sudo apt-get update
sudo apt-get install -y build-essential make zlib1g-dev
참고
- 일부 환경에서는 Perl 모듈이 필요할 수 있습니다.
libfindbin-libs-perl
2. OpenSSL 소스 코드 다운로드
OpenSSL 공식 사이트에서 최신 소스 코드를 다운로드합니다.
☞ OpenSSL 다운로드 : https://www.openssl.org/source/
cd /usr/local/src
wget https://www.openssl.org/source/openssl-3.1.1.tar.gz
tar xzf openssl-3.1.1.tar.gz
cd openssl-3.1.1
3. OpenSSL 컴파일 및 설치
다음 옵션을 사용하여 OpenSSL을 컴파일합니다.
./config --prefix=/usr/local/openssl --openssldir=/usr/local/openssl shared zlib
make -j $(($(nproc) + 1))
sudo make install
make -j $(($(nproc) + 1)) 옵션은 CPU 코어 수를 기반으로 병렬 컴파일을 수행하여 빌드 시간을 단축합니다.
4. OpenSSL 라이브러리 경로 등록
OpenSSL이 사용하는 라이브러리를 시스템 라이브러리 경로에 등록합니다.
echo "/usr/local/openssl/lib" | sudo tee /etc/ld.so.conf.d/openssl.conf
sudo ldconfig
설명
- /etc/ld.so.conf.d/ : 동적 라이브러리 검색 경로 설정 디렉터리
- ldconfig : 라이브러리 캐시 갱신
또한 현재 세션에서 라이브러리를 사용할 수 있도록 환경 변수를 설정합니다.
export LD_LIBRARY_PATH=/usr/local/openssl/lib:$LD_LIBRARY_PATH
필요할 경우 .bashrc 또는 .profile에 추가하여 영구 적용할 수 있습니다.
5. OpenSSL 버전 확인
설치된 OpenSSL의 버전을 확인합니다.
/usr/local/openssl/bin/openssl version
OpenSSL 3.1.1 30 May 2023 (Library: OpenSSL 3.1.1 30 May 2023)
6. OpenSSL 바이너리가 사용하는 라이브러리 확인
OpenSSL 실행 파일이 어떤 라이브러리를 사용하는지 확인합니다.
ldd /usr/local/openssl/bin/openssl
$ ldd /usr/local/openssl/bin/openssl
linux-vdso.so.1 (0x0000ffff96c6f000)
libssl.so.3 => /usr/local/openssl/lib/libssl.so.3 (0x0000ffff96a70000)
libcrypto.so.3 => /usr/local/openssl/lib/libcrypto.so.3 (0x0000ffff96620000)
libc.so.6 => /lib/aarch64-linux-gnu/libc.so.6 (0x0000ffff96470000)
/lib/ld-linux-aarch64.so.1 (0x0000ffff96c36000)
libz.so.1 => /lib/aarch64-linux-gnu/libz.so.1 (0x0000ffff96440000)
이를 통해 OpenSSL이 /usr/local/openssl/lib 경로의 라이브러리를 정상적으로 사용하는지 확인할 수 있습니다.
'리눅스' 카테고리의 다른 글
| [draft] Apache HTTP Method 예외 처리 및 제한 설정 (0) | 2026.03.06 |
|---|---|
| [draft] 우분투에서 sslscan을 설치하고 사용하는 방법 (0) | 2026.03.06 |
| [draft] fstab 파일의 필드 구성 (0) | 2026.03.05 |
| [draft] SecureCRT에서 SSH 키 교환 알고리즘 설정과 관련된 오류 (0) | 2026.03.05 |
| [draft] growpart 명령어 (0) | 2026.03.05 |