【도해 첨부】개발용 올레올레 인증국 SSL 통신(+docker 컨테이너 대응) : 2021

소개



오레 올레 인증서를 사용하고 있습니까? 무료로 ssl 통신을 할 수 있어 편리하네요.



편리하게 올레올레하고 있었지만 개발용 vm 내에 docker 컨테이너를 2개 기동해 컨테이너간에 https 통신시키려고 하면 「수상한 증명국이 서명한 증명서라고」라고 화가 났으므로 대처 방법을 설명합니다.

error.log
# 怪しい証明局が署名したやろエラー
x509: certificate signed by unknown authority

수상하지 않은 올레올레 증명서 발행



절차는 다음과 같습니다.
- 올레올레 인증 기관 만들기
- 작성한 「올레올레 증명국」을 개발용 vm에 「신뢰할 수 있는 증명국」으로서 등록
- '올레올레증명국'이 서명한 '올레올레증명서'를 발행

약간 귀찮은 것처럼 보이지만 mkcert를 사용하면 매우 간단합니다.
mkcert



mkcert 설치



install.sh
# https://github.com/FiloSottile/mkcert/releases より最新版をダウンロードして実行権限追加
# ubntu の場合
wget https://github.com/FiloSottile/mkcert/releases/mkcert-v1.4.3-darwin-amd64
mv mkcert-v1.4.3-darwin-amd64 mkcert
chmod +x mkcert

/etc/hosts에 도메인 등록


127.0.0.1 {domain}

※2021/01/23 추기:/etc/hosts 에 도메인 등록한 상태로, mkcert -install 하지 않으면 안되는 것 같습니다.

올레올레 인증 기관 만들기 + "신뢰할 수있는 인증 기관"으로 등록


mkcert -install

「올레올레증명국」이 서명한 「올레올레증명서」를 발행


mkcert -key-file key.pem -cert-file cert.pem {domain}

컨테이너 시작시 자체 인증 기관 마운트



이 상태에서 docker 컨테이너간에 https 통신을 실시하면(자), 올레올레 증명국이 「신뢰할 수 있는 증명국」으로서 인식되어 있지 않은 상태가 되어, 「수상한 증명국이 서명한 증명서나」 오류가 됩니다.

이를 방지하기 위해 VM의 신뢰할 수 있는 인증 기관을 컨테이너에 마운트합니다.



프로덕션 환경에서는 SSL 인증서 발급자가 서명한 SSL 인증서를 사용하므로 이 프로세스가 필요하지 않습니다.
일반적인 docker-compose.yaml 대신 docker-compose.override.yaml에 나열되어 있으며 프로덕션 환경에서는 docker-compose.override.yaml을 복사하지 마십시오.
{docker-compose folder}/
 │ docker-compose.yaml
 └ docker-compose.override.yaml # 追加

docker-compose.override.yaml
  # mount 設定を追加
  volumes:
    - /etc/ssl/certs/ca-certificates.crt:/etc/ssl/certs/ca-certificates.crt

docker-run.sh
docker run .... -v /etc/ssl/certs/ca-certificates.crt:/etc/ssl/certs/ca-certificates.crt

결론



옛날에는 매우 귀찮았던 것이, 간단하게 할 수 있게 되어 왔습니다.
프로젝트의 슬림화가 진행됨과 동시에 프론트 엔지니어와 인프라 엔지니어의 경계가 모호해지고 있기 때문에, 가능한 한 쉽게 다양한 작업을 해낼 수 있도록 하여 보다 많은 요건을 충족시킬 수 있도록 하고 싶은 것입니다.

좋은 웹페이지 즐겨찾기