SSL 클라이언트 인증서 설정 (베타)

plans-img 모든 플랜 에서 사용 가능

deployment-img self-hosted 배포판

브라우저 및 Windows, macOS, Linux용 Mattermost 데스크톱 앱에 SSL 클라이언트 인증서를 구성하려면 다음 단계를 따르세요. SSL 클라이언트 인증서는 아직 Mattermost 모바일 앱에서 지원되지 않습니다.

시작하기 전에 Mattermost 설치하기 공식 가이드 을 따라 시스템에 Mattermost를 설치하고, NGINX 구성을 SSL 및 HTTP/2 프록시로 포함하며, Let’s Encrypt와 같은 유효한 SSL 인증서를 설치합니다.

이 안내서를 위해 Mattermost 서버 도메인 이름은 example.mattermost.com 이고, 사용자 계정은 mmuser 이며, 이메일은 mmuser@mattermost.com 이고, 비밀번호는 mmuser-password 입니다.

Important

  • 이미 클라이언트 인증서를 생성한 경우, 이 단계에서 클라이언트 인증서를 생성하는 것은 선택 사항입니다.

  • 보안, 개인 정보, 규정 준수 및 사용자의 로컬 클립보드를 사용하여 데이터를 복사하는 Mattermost 제품 기능이 작동하는 데 방해가 될 수 있는 브라우저 제한을 피하기 위해 SSL 인증서(또는 자체 서명된 인증서)를 구성하는 것을 강력히 권장합니다. 이는 메시지 링크 공유새로운 팀 멤버 초대 등을 포함합니다.

웹 앱을 위한 상호 TLS 인증 설정

  1. 인증 기관(CA) 키 및 클라이언트 인증서에 서명하기 위한 인증서를 생성합니다. TLS 연결을 설정할 때, NGINX 프록시 서버가 웹 앱이 제공하는 클라이언트 인증서를 요청하고 유효성을 검사합니다.

none openssl genrsa -des3 -out ca.mattermost.key 4096

패스 프레이즈: capassword

none openssl req -new -x509 -days 365 -key ca.mattermost.key -out ca.mattermost.crt

Country Name: US State: Maryland Locality Name: Meade Organization Name: Mattermost Organization Unit: Smarttotem Common Name: example.mattermost.com Email Address: admin@mattermost.com

  1. mmuser 를 위한 클라이언트 측 키를 패스 프레이즈와 함께 생성하고, 인증서 서명 요청을 생성합니다:

none openssl genrsa -des3 -out mmuser-mattermost.key 1024

패스프레이즈: mmuser-passphrase

none openssl req -new -key mmuser-mattermost.key -out mmuser-mattermost.csr

Country Name: US State: Maryland Locality Name: Meade Organization Name: Mattermost Organization Unit: Smarttotem Common Name: mmuser Email Address: mmuser@mattermost.com

도전 암호: mmuser-passphrase

  1. 이전에 생성한 CA 인증서를 사용하여 사용자의 클라이언트 인증서에 서명합니다:

none openssl x509 -req -days 365 -in mmuser-mattermost.csr -CA ca.mattermost.crt -CAkey ca.mattermost.key -set_serial 01 -out mmuser-mattermost.crt

  1. mmuser 의 새로 생성된 클라이언트 인증서를 확인합니다:

none openssl x509 -in mmuser-mattermost.crt -text -noout

  1. 파일 /etc/nginx/sites-available/mattermost 를 열고, NGINX 프록시 서버가 클라이언트 인증서를 요청하고 검증하도록 다음 줄을 수정합니다:

none ssl on; ssl_certificate /etc/letsencrypt/live/example.mattermost.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/example.mattermost.com/privkey.pem; ssl_client_certificate /opt/mattermost/config/ca.mattermost.crt; ssl_verify_client on;

location ~ /api/v[0-9]+/(users/)?websocket$ {

proxy_set_header X-SSL-Client-Cert $ssl_client_cert; proxy_set_header X-SSL-Client-Cert-Subject-DN $ssl_client_s_dn;

location / {

proxy_set_header X-SSL-Client-Cert $ssl_client_cert; proxy_set_header X-SSL-Client-Cert-Subject-DN $ssl_client_s_dn;

  1. mmuser 의 CA 키가 동작하는지 확인하기 위해 다음 curl 명령을 프록시에 보냅니다:

none curl -v -s -k –key mmuser-mattermost.key –cert mmuser-mattermost.crt:mmuser-passphrase https://example.mattermost.com

Mattermost 로그인 페이지가 표시되어야 합니다. 다음과 같은 메시지가 표시되면:

  • No required SSL certificate was sent : 문제가 발생했습니다. 위 단계를 검토하고 다시 시도하세요.

  • Error reading X.509 key or certificate file: Decryption has failed. : curl이 별도로 암호를 요구하지 않기 때문에, 암호가 인증서와 함께 포함되어 있는지 확인하세요.

  1. 클라이언트 기계에 인증서를 설치하도록 CA 키 및 인증서에서 PKCS12 파일을 생성합니다:

none openssl pkcs12 -export -out mmuser-mattermost.p12 -inkey mmuser-mattermost.key -in mmuser-mattermost.crt -certfile ca.mattermost.crt

내보낼 암호 입력: mmuser-passphrase

  1. 필요에 따라 다른 사용자에게 해당 사용자에 대해 단계 2-7을 반복합니다.

  2. 단계 7에서 생성한 .p12 파일을 키프레인에 가져옵니다. macOS의 Chrome 브라우저에서:

  1. 설정 > 고급 > 개인정보 및 보안 > 인증서 관리 로 이동합니다. 이는 키프레인 액세스 앱을 엽니다.

  2. 파일 > 항목 가져오기 로 이동하여 mmuser-mattermost.p12 파일을 선택합니다.

  1. https://example.mattermost.com 로 이동합니다. 클라이언트 인증서 요청에 대한 팝업이 표시됩니다.

문제 해결

구성 문제를 해결하고 도움을 요청하려면 이 프로세스를 따르세요 .