^ Linux From Scratch - Version 12.1-systemd ^^^
^ Chapter 8. Installing Basic System Software ^^^
|[[.:116-automake-1.16.5|이전]] | [[.:08-installing_basic_system_software|위로]] / [[.:12.1|처음으로]] | [[.:118-kmod-31|다음]]|
|Automake-1.16.5 | Kmod-31|
----
===== 8.47. OpenSSL-3.2.1 =====
OpenSSL 패키지에는 암호화와 관련된 관리 도구와 라이브러리가 포함되어 있습니다. 이러한 도구는 OpenSSH, 이메일 애플리케이션, 웹 브라우저(HTTPS 사이트 액세스용) 등 다른 패키지에 암호화 기능을 제공하는 데 유용합니다.
* **빌드 시간:** 1.8 SBU
* **디스크 공간:** 805 MB
----
==== 8.47.1. OpenSSL 설치 ====
OpenSSL 컴파일을 준비합니다.
./config --prefix=/usr \
--openssldir=/etc/ssl \
--libdir=lib \
shared \
zlib-dynamic
패키지를 컴파일합니다.
make
다음과 같이 결과를 테스트합니다.
HARNESS_JOBS=$(nproc) make test
테스트 중 ''30-test_afalg.t''는 호스트 커널에 ''CONFIG_CRYPTO_USER_API_SKCIPHER''가 활성화되어 있지 않거나 CBC 구현이 있는 AES를 제공하는 옵션(예: ''CONFIG_CRYPTO_AES''와 ''CONFIG_CRYPTO_CBC''의 조합 또는 CPU가 AES-NI를 지원하는 경우 ''CONFIG_CRYPTO_AES_NI_INTEL'')이 활성화되지 않은 경우 실패하는 것으로 알려져 있습니다. 이 항목의 실패는 무해하며 무시해도 됩니다.
패키지를 설치합니다.
sed -i '/INSTALL_LIBS/s/libcrypto.a libssl.a//' Makefile
make MANSUFFIX=ssl install
다른 패키지와 일관성을 유지하기 위해 문서 디렉터리 이름에 버전을 추가합니다:
mv -v /usr/share/doc/openssl /usr/share/doc/openssl-3.2.1
원하는 경우 몇 가지 추가 문서를 설치합니다:
cp -vfr doc/* /usr/share/doc/openssl-3.2.1
**참고** \\
취약점을 수정한 새 버전이 발표되면 OpenSSL을 업데이트해야 합니다. OpenSSL 3.0.0부터 OpenSSL 버전 관리 체계는 MAJOR.MINOR.PATCH 형식을 따릅니다. 동일한 MAJOR 버전 번호에 대해 API/ABI 호환성이 보장됩니다. LFS는 공유 라이브러리만 설치하기 때문에 MAJOR 버전 번호가 동일한 버전으로 업그레이드할 때 ''libcrypto.so'' 또는 ''libssl.so''에 링크된 패키지를 다시 컴파일할 필요가 없습니다.
하지만 해당 라이브러리에 연결된 실행 중인 프로그램은 모두 중지했다가 다시 시작해야 합니다. 자세한 내용은 [[072-package_management#8.2.1. 업그레이드 문제|8.2.1, "업그레이드 문제"]]의 관련 항목을 참조하세요.
----
==== 8.47.2. OpenSSL 패키지 구성 ====
* **설치된 프로그램:** \\ c_rehash 및 openssl
* **설치된 라이브러리:** \\ libcrypto.so 및 libssl.so
* **설치된 디렉터리** \\ /etc/ssl, /usr/include/openssl, /usr/lib/engines 및 /usr/share/doc/openssl-3.2.1
=== 간략한 설명===
* **c_rehash** \\ 디렉토리의 모든 파일을 검사하고 해시 값에 심볼릭 링크를 추가하는 Perl 스크립트입니다. **c_rehash** 명령은 더 이상 사용되지 않는 것으로 간주하고 **openssl rehash** 명령으로 대체해야 합니다.
* **openssl** \\ 셸에서 OpenSSL의 암호화 라이브러리의 다양한 암호화 기능을 사용하기 위한 명령줄 도구입니다. ''[[https://man.archlinux.org/man/openssl.1|openssl(1)]]''에 문서화되어 있는 다양한 함수에 사용할 수 있습니다.
* libcrypto.so \\ 다양한 인터넷 표준에서 사용되는 광범위한 암호화 알고리즘을 구현합니다. 이 라이브러리가 제공하는 서비스는 SSL, TLS 및 S/MIME의 OpenSSL 구현에서 사용되며, OpenSSH, OpenPGP 및 기타 암호화 표준을 구현하는 데도 사용되었습니다.
* libssl.so \\ 전송 계층 보안(TLS v1) 프로토콜을 구현합니다. 풍부한 API를 제공하며, 이에 대한 문서는 ''[[https://man.archlinux.org/man/ssl.7|ssl(7)]]''에서 확인할 수 있습니다.