InfoGrab Docs

S/MIME로 발신 이메일 서명

요약

GitLab에서 보내는 알림 이메일은 보안 향상을 위해 S/MIME로 서명할 수 있습니다. S/MIME 인증서와 TLS/SSL 인증서는 다르며 서로 다른 목적으로 사용됩니다: TLS는 보안 채널을 만들고, S/MIME는 메시지 자체에 서명 및/또는 암호화합니다.

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 인증서는 이진 공개 키 암호화 표준(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로 발신 이메일 서명

Tier: Free, Premium, Ultimate
Offering: GitLab Self-Managed
원문 보기
요약

GitLab에서 보내는 알림 이메일은 보안 향상을 위해 S/MIME로 서명할 수 있습니다. S/MIME 인증서와 TLS/SSL 인증서는 다르며 서로 다른 목적으로 사용됩니다: TLS는 보안 채널을 만들고, S/MIME는 메시지 자체에 서명 및/또는 암호화합니다.

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 인증서는 이진 공개 키 암호화 표준(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