InfoGrab DocsInfoGrab Docs

S/MIME로 발신 이메일 서명

요약

GitLab 이 보내는 알림 이메일은 보안 강화를 위해 S/MIME로 서명할 수 있습니다. S/MIME 인증서와 TLS/SSL 인증서는 서로 다르며 용도도 다릅니다. 이 설정은 명시적으로 활성화해야 하며, 키 파일과 인증서 파일 한 쌍을 제공해야 합니다.

GitLab 이 보내는 알림 이메일은 보안 강화를 위해 S/MIME로 서명할 수 있습니다.

S/MIME 인증서와 TLS/SSL 인증서는 서로 다르며 용도도 다릅니다. TLS는 보안 채널을 만들고, S/MIME는 메시지 자체에 서명하거나 메시지를 암호화합니다.

S/MIME 서명 활성화#

이 설정은 명시적으로 활성화해야 하며, 키 파일과 인증서 파일 한 쌍을 제공해야 합니다.

  • 두 파일 모두 PEM 인코딩이어야 합니다.
  • 키 파일은 GitLab 이 사용자 개입 없이 읽을 수 있도록 암호화되지 않은 상태여야 합니다.
  • RSA 키만 지원됩니다.

선택적으로 각 서명에 포함할 CA 인증서 번들(PEM 인코딩)을 제공할 수도 있습니다. 일반적으로 중간 CA에 해당합니다.

Warning

개인 키의 접근 수준과 제3자에 대한 노출 범위에 주의해야 합니다.

Linux 패키지 설치의 경우 다음 절차를 수행합니다.

  1. /etc/gitlab/gitlab.rb를 편집하고 파일 경로를 조정합니다.

    gitlab_rails['gitlab_email_smime_enabled'] = true
    gitlab_rails['gitlab_email_smime_key_file'] = '/etc/gitlab/ssl/gitlab_smime.key'
    gitlab_rails['gitlab_email_smime_cert_file'] = '/etc/gitlab/ssl/gitlab_smime.crt'
    # Optional
    gitlab_rails['gitlab_email_smime_ca_certs_file'] = '/etc/gitlab/ssl/gitlab_smime_cas.crt'
    
  2. 파일을 저장하고 변경 사항이 적용되도록 GitLab을 재구성합니다.

키는 GitLab 시스템 사용자(기본값 git)가 읽을 수 있어야 합니다.

자체 컴파일 설치의 경우 다음 절차를 수행합니다.

  1. config/gitlab.yml을 편집합니다.

    email_smime:
      # Uncomment and set to true if you need to enable email S/MIME signing (default: false)
      enabled: true
      # S/MIME private key file in PEM format, unencrypted
      # Default is '.gitlab_smime_key' relative to Rails.root (the root of the GitLab app).
      key_file: /etc/pki/smime/private/gitlab.key
      # S/MIME public certificate key in PEM format, will be attached to signed messages
      # Default is '.gitlab_smime_cert' relative to Rails.root (the root of the GitLab app).
      cert_file: /etc/pki/smime/certs/gitlab.crt
      # S/MIME extra CA public certificates in PEM format, will be attached to signed messages
      # Optional
      ca_certs_file: /etc/pki/smime/certs/gitlab_cas.crt
    
  2. 파일을 저장하고 변경 사항이 적용되도록 GitLab을 재시작합니다.

키는 GitLab 시스템 사용자(기본값 git)가 읽을 수 있어야 합니다.

S/MIME PKCS #12 형식을 PEM 인코딩으로 변환하는 방법#

일반적으로 S/MIME 인증서는 이진 공개 키 암호화 표준(Public Key Cryptography Standards, PKCS) #12 형식 (.pfx 또는 .p12 확장자)으로 처리되며, 하나의 암호화된 파일에 다음 항목이 들어 있습니다.

  • 공개 인증서
  • 중간 인증서(있는 경우)
  • 개인 키

PKCS #12 파일에서 필요한 파일을 PEM 인코딩으로 내보낼 때는 openssl 명령을 사용할 수 있습니다.

#-- Extract private key in PEM encoding (no password, unencrypted)
openssl pkcs12 -in gitlab.p12 -nocerts -nodes -out gitlab.key

#-- Extract certificates in PEM encoding (full certs chain including CA)
openssl pkcs12 -in gitlab.p12 -nokeys -out gitlab.crt

S/MIME로 발신 이메일 서명

GitLab v19.5
Tier: Free, Premium, Ultimate
Offering: GitLab Self-Managed
원문 보기

요약

GitLab 이 보내는 알림 이메일은 보안 강화를 위해 S/MIME로 서명할 수 있습니다. S/MIME 인증서와 TLS/SSL 인증서는 서로 다르며 용도도 다릅니다. 이 설정은 명시적으로 활성화해야 하며, 키 파일과 인증서 파일 한 쌍을 제공해야 합니다.

GitLab 이 보내는 알림 이메일은 보안 강화를 위해 S/MIME로 서명할 수 있습니다.

S/MIME 인증서와 TLS/SSL 인증서는 서로 다르며 용도도 다릅니다. TLS는 보안 채널을 만들고, S/MIME는 메시지 자체에 서명하거나 메시지를 암호화합니다.

S/MIME 서명 활성화#

이 설정은 명시적으로 활성화해야 하며, 키 파일과 인증서 파일 한 쌍을 제공해야 합니다.

  • 두 파일 모두 PEM 인코딩이어야 합니다.
  • 키 파일은 GitLab 이 사용자 개입 없이 읽을 수 있도록 암호화되지 않은 상태여야 합니다.
  • RSA 키만 지원됩니다.

선택적으로 각 서명에 포함할 CA 인증서 번들(PEM 인코딩)을 제공할 수도 있습니다. 일반적으로 중간 CA에 해당합니다.

Warning

개인 키의 접근 수준과 제3자에 대한 노출 범위에 주의해야 합니다.

Linux 패키지 설치의 경우 다음 절차를 수행합니다.

  1. /etc/gitlab/gitlab.rb를 편집하고 파일 경로를 조정합니다.

    gitlab_rails['gitlab_email_smime_enabled'] = true
    gitlab_rails['gitlab_email_smime_key_file'] = '/etc/gitlab/ssl/gitlab_smime.key'
    gitlab_rails['gitlab_email_smime_cert_file'] = '/etc/gitlab/ssl/gitlab_smime.crt'
    # Optional
    gitlab_rails['gitlab_email_smime_ca_certs_file'] = '/etc/gitlab/ssl/gitlab_smime_cas.crt'
    
  2. 파일을 저장하고 변경 사항이 적용되도록 GitLab을 재구성합니다.

키는 GitLab 시스템 사용자(기본값 git)가 읽을 수 있어야 합니다.

자체 컴파일 설치의 경우 다음 절차를 수행합니다.

  1. config/gitlab.yml을 편집합니다.

    email_smime:
      # Uncomment and set to true if you need to enable email S/MIME signing (default: false)
      enabled: true
      # S/MIME private key file in PEM format, unencrypted
      # Default is '.gitlab_smime_key' relative to Rails.root (the root of the GitLab app).
      key_file: /etc/pki/smime/private/gitlab.key
      # S/MIME public certificate key in PEM format, will be attached to signed messages
      # Default is '.gitlab_smime_cert' relative to Rails.root (the root of the GitLab app).
      cert_file: /etc/pki/smime/certs/gitlab.crt
      # S/MIME extra CA public certificates in PEM format, will be attached to signed messages
      # Optional
      ca_certs_file: /etc/pki/smime/certs/gitlab_cas.crt
    
  2. 파일을 저장하고 변경 사항이 적용되도록 GitLab을 재시작합니다.

키는 GitLab 시스템 사용자(기본값 git)가 읽을 수 있어야 합니다.

S/MIME PKCS #12 형식을 PEM 인코딩으로 변환하는 방법#

일반적으로 S/MIME 인증서는 이진 공개 키 암호화 표준(Public Key Cryptography Standards, PKCS) #12 형식 (.pfx 또는 .p12 확장자)으로 처리되며, 하나의 암호화된 파일에 다음 항목이 들어 있습니다.

  • 공개 인증서
  • 중간 인증서(있는 경우)
  • 개인 키

PKCS #12 파일에서 필요한 파일을 PEM 인코딩으로 내보낼 때는 openssl 명령을 사용할 수 있습니다.

#-- Extract private key in PEM encoding (no password, unencrypted)
openssl pkcs12 -in gitlab.p12 -nocerts -nodes -out gitlab.key

#-- Extract certificates in PEM encoding (full certs chain including CA)
openssl pkcs12 -in gitlab.p12 -nokeys -out gitlab.crt