1.9. Apache HTTP Server에서 TLS 암호화 구성


기본적으로 Apache는 암호화되지 않은 HTTP 연결을 사용하여 클라이언트에 콘텐츠를 제공합니다. 이 섹션에서는 TLS 암호화를 활성화하고 Apache HTTP Server에서 자주 사용하는 암호화 관련 설정을 구성하는 방법에 대해 설명합니다.

사전 요구 사항

  • Apache HTTP Server가 설치되어 실행 중입니다.

1.9.1. Apache HTTP Server에 TLS 암호화 추가

example.com 도메인의 Apache HTTP Server에서 TLS 암호화를 활성화할 수 있습니다.

사전 요구 사항

  • Apache HTTP Server가 설치되어 실행 중입니다.
  • 개인 키는 /etc/pki/tls/private/example.com.key 파일에 저장됩니다.

    개인 키 및 CSR(인증서 서명 요청) 생성 및 CA(인증 기관)에서 인증서를 요청하는 방법에 대한 자세한 내용은 CA 문서를 참조하십시오. 또는 CA에서 ACME 프로토콜을 지원하는 경우 mod_md 모듈을 사용하여 TLS 인증서 검색 및 프로비저닝을 자동화할 수 있습니다.

  • TLS 인증서는 /etc/pki/tls/certs/example.com.crt 파일에 저장됩니다. 다른 경로를 사용하는 경우 절차의 해당 단계를 조정합니다.
  • CA 인증서는 /etc/pki/tls/certs/ca.crt 파일에 저장됩니다. 다른 경로를 사용하는 경우 절차의 해당 단계를 조정합니다.
  • 클라이언트 및 웹 서버는 서버의 호스트 이름을 웹 서버의 IP 주소로 확인합니다.

프로세스

  1. mod_ssl 패키지를 설치합니다.

    # yum install mod_ssl
    Copy to Clipboard Toggle word wrap
  2. /etc/httpd/conf.d/ssl.conf 파일을 편집하고 다음 설정을 <VirtualHost _default_:443> 지시문에 추가합니다.

    1. 서버 이름을 설정합니다.

      ServerName example.com
      Copy to Clipboard Toggle word wrap

서버 이름은 인증서의 Common Name 필드에 설정된 항목과 일치해야 합니다.

  1. 선택 사항: 인증서에 SAN(Subject Alt Names) 필드에 추가 호스트 이름이 포함된 경우 이러한 호스트 이름에도 TLS 암호화를 제공하도록 mod_ssl을 구성할 수 있습니다. 이를 구성하려면 해당 이름으로 ServerAliases 매개변수를 추가합니다.

    ServerAlias www.example.com server.example.com
    Copy to Clipboard Toggle word wrap
  2. 개인 키, 서버 인증서 및 CA 인증서에 대한 경로를 설정합니다.

    SSLCertificateKeyFile "/etc/pki/tls/private/example.com.key"
    SSLCertificateFile "/etc/pki/tls/certs/example.com.crt"
    SSLCACertificateFile "/etc/pki/tls/certs/ca.crt"
    Copy to Clipboard Toggle word wrap
    1. 보안상의 이유로 root 사용자만 개인 키 파일에 액세스할 수 있도록 구성합니다.

      # chown root:root /etc/pki/tls/private/example.com.key
      # chmod 600 /etc/pki/tls/private/example.com.key
      Copy to Clipboard Toggle word wrap
      주의

      권한이 없는 사용자가 개인 키에 액세스한 경우 인증서를 취소하고 새 개인 키를 만들고 새 인증서를 요청합니다. 그렇지 않으면 TLS 연결이 더 이상 안전하지 않습니다.

    2. firewalld 를 사용하는 경우 로컬 방화벽에서 포트 443 을 엽니다.

      # firewall-cmd --permanent --add-port=443/tcp
      # firewall-cmd --reload
      Copy to Clipboard Toggle word wrap
    3. httpd 서비스를 다시 시작합니다.

      # systemctl restart httpd
      Copy to Clipboard Toggle word wrap
    참고

    개인 키 파일을 암호로 보호한 경우 httpd 서비스가 시작될 때마다 이 암호를 입력해야 합니다.

검증

  • 브라우저를 사용하고 https://example.com에 연결합니다.

1.9.2. Apache HTTP Server에서 지원되는 TLS 프로토콜 버전 설정

기본적으로 RHEL의 Apache HTTP Server는 최신 브라우저와 호환되는 안전한 기본값을 정의하는 시스템 전체 암호화 정책을 사용합니다. 예를 들어 DEFAULT 정책은 apache에서 TLSv1.2TLSv1.3 프로토콜 버전만 사용하도록 정의합니다.

Apache HTTP Server에서 지원하는 TLS 프로토콜 버전을 수동으로 구성할 수 있습니다. 환경에서 특정 TLS 프로토콜 버전만 활성화해야 하는 경우 절차를 따르십시오. 예를 들면 다음과 같습니다.

  • 환경에 해당 클라이언트가 클라이언트가 취약한 TLS1 (TLSv1.0) 또는 TLS1.1 프로토콜을 사용할 수도 있어야 하는 경우
  • Apache가 TLSv1.2 또는 TLSv1.3 프로토콜만 지원하도록 구성하려는 경우

사전 요구 사항

프로세스

  1. /etc/httpd/conf/httpd.conf 파일을 편집하고 다음 설정을 TLS 프로토콜 버전을 설정하려는 <VirtualHost> 지시문에 추가합니다. 예를 들어 TLSv1.3 프로토콜만 활성화하려면 다음을 수행합니다.

    SSLProtocol -All TLSv1.3
    Copy to Clipboard Toggle word wrap
  2. httpd 서비스를 다시 시작합니다.

    # systemctl restart httpd
    Copy to Clipboard Toggle word wrap

검증

  1. 다음 명령을 사용하여 서버가 TLSv1.3을 지원하는지 확인합니다:

    # openssl s_client -connect example.com:443 -tls1_3
    Copy to Clipboard Toggle word wrap
  2. 다음 명령을 사용하여 서버가 TLSv1.2를 지원하지 않는지 확인합니다.

    # openssl s_client -connect example.com:443 -tls1_2
    Copy to Clipboard Toggle word wrap

    서버가 프로토콜을 지원하지 않으면 명령에서 오류를 반환합니다.

    140111600609088:error:1409442E:SSL routines:ssl3_read_bytes:tlsv1 alert protocol version:ssl/record/rec_layer_s3.c:1543:SSL alert number 70
    Copy to Clipboard Toggle word wrap
  3. 선택 사항: 다른 TLS 프로토콜 버전에 대해 명령을 반복합니다.

1.9.3. Apache HTTP Server에서 지원되는 암호 설정

기본적으로 Apache HTTP 서버는 최근 브라우저와 호환되는 안전한 기본값을 정의하는 시스템 전체 암호화 정책을 사용합니다. 시스템 전체에서 허용하는 암호 목록은 /etc/crypto-policies/back-ends/openssl.config 파일을 참조하십시오.

Apache HTTP Server에서 지원하는 암호를 수동으로 구성할 수 있습니다. 환경에 특정 암호가 필요한 경우 절차를 따르십시오.

사전 요구 사항

프로세스

  1. /etc/httpd/conf/httpd.conf 파일을 편집하고 SSLCipherSuite 매개변수를 TLS 암호를 설정하려는 <VirtualHost> 지시문에 추가합니다.

    SSLCipherSuite "EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH:!SHA1:!SHA256"
    Copy to Clipboard Toggle word wrap

    이 예제에서는 EECDH+AESGCM,EDH+AESGCM,AES256+EECDHAES256+EDH 암호만 활성화하며 SHA1SHA256 메시지 인증 코드(MAC)를 사용하는 모든 암호를 비활성화합니다.

  2. httpd 서비스를 다시 시작합니다.

    # systemctl restart httpd
    Copy to Clipboard Toggle word wrap

검증

  1. Apache HTTP Server에서 지원하는 암호 목록을 표시하려면 다음을 수행합니다.

    1. nmap 패키지를 설치합니다.

      # yum install nmap
      Copy to Clipboard Toggle word wrap
    2. nmap 유틸리티를 사용하여 지원되는 암호를 표시합니다.

      # nmap --script ssl-enum-ciphers -p 443 example.com
      ...
      PORT    STATE SERVICE
      443/tcp open  https
      | ssl-enum-ciphers:
      |   TLSv1.2:
      |     ciphers:
      |       TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (ecdh_x25519) - A
      |       TLS_DHE_RSA_WITH_AES_256_GCM_SHA384 (dh 2048) - A
      |       TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256 (ecdh_x25519) - A
      ...
      Copy to Clipboard Toggle word wrap
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다. 최신 업데이트를 확인하세요.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

Theme

© 2026 Red Hat
맨 위로 이동