S/MIME로 발신 이메일 서명하기
Offering: Self-managed
GitLab에서 발송된 알림 이메일은 보안을 향상시키기 위해 S/MIME로 서명할 수 있습니다.
S/MIME 인증서와 TLS/SSL 인증서는 동일하지 않으며 다양한 용도로 사용됨을 유의하십시오: TLS는 보안 채널을 생성하고, S/MIME은 메시지 자체를 서명하고/하거나 암호화합니다.
S/MIME 서명 활성화
이 설정은 명시적으로 활성화해야 하며, 단일 쌍의 키 파일과 인증서 파일이 제공되어야 합니다:
- 두 파일 모두 PEM 인코딩이어야 합니다.
- 키 파일은 암호화되지 않아야 하며, GitLab이 사용자 개입 없이 읽을 수 있어야 합니다.
- RSA 키만 지원됩니다.
선택적으로, 각 서명에 포함될 CA 인증서 번들(PEM 인코딩)을 제공할 수도 있습니다. 이는 일반적으로 중간 CA입니다.
경고:
개인 키에 대한 액세스 수준과 제3자에 대한 가시성을 유의하십시오.
Linux 패키지 설치의 경우:
-
/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' # 선택 사항 gitlab_rails['gitlab_email_smime_ca_certs_file'] = '/etc/gitlab/ssl/gitlab_smime_cas.crt'
-
파일을 저장하고 GitLab 재구성하기로 변경 사항이 적용되도록 합니다.
키는 GitLab 시스템 사용자(git
기본값)가 읽을 수 있어야 합니다.
자체 컴파일된 설치의 경우:
-
config/gitlab.yml
을 편집하십시오:email_smime: # 이메일 S/MIME 서명을 활성화해야 할 경우 주석을 제거하고 true로 설정하십시오 (기본값: false) enabled: true # PEM 형식의 S/MIME 개인 키 파일, 암호화되지 않음 # 기본값은 Rails.root에 상대적인 '.gitlab_smime_key'입니다 (즉, GitLab 앱의 루트). key_file: /etc/pki/smime/private/gitlab.key # PEM 형식의 S/MIME 공개 인증서 키, 서명된 메시지에 첨부됩니다 # 기본값은 Rails.root에 상대적인 '.gitlab_smime_cert'입니다 (즉, GitLab 앱의 루트). cert_file: /etc/pki/smime/certs/gitlab.crt # PEM 형식의 S/MIME 추가 CA 공개 인증서, 서명된 메시지에 첨부됩니다 # 선택 사항 ca_certs_file: /etc/pki/smime/certs/gitlab_cas.crt
-
파일을 저장하고 GitLab 재시작하기로 변경 사항이 적용되도록 합니다.
키는 GitLab 시스템 사용자(git
기본값)가 읽을 수 있어야 합니다.
S/MIME PKCS #12 형식을 PEM 인코딩으로 변환하는 방법
일반적으로 S/MIME 인증서는 이진 공개 키 암호화 표준(PKCS) #12 형식(.pfx
또는 .p12
확장자)으로 처리되며, 다음을 포함하는 단일 암호화된 파일에 저장됩니다:
- 공개 인증서
- 중간 인증서(있는 경우)
- 개인 키
PKCS #12 파일에서 PEM 인코딩 형식으로 필요한 파일을 내보내기 위해 openssl
명령을 사용할 수 있습니다:
#-- PEM 인코딩으로 개인 키 추출 (비밀번호 없이, 암호화되지 않음)
$ openssl pkcs12 -in gitlab.p12 -nocerts -nodes -out gitlab.key
#-- PEM 인코딩으로 인증서 추출 (CA를 포함한 전체 인증서 체인)
$ openssl pkcs12 -in gitlab.p12 -nokeys -out gitlab.crt