【도해 첨부】개발용 올레올레 인증국 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
결론
옛날에는 매우 귀찮았던 것이, 간단하게 할 수 있게 되어 왔습니다.
프로젝트의 슬림화가 진행됨과 동시에 프론트 엔지니어와 인프라 엔지니어의 경계가 모호해지고 있기 때문에, 가능한 한 쉽게 다양한 작업을 해낼 수 있도록 하여 보다 많은 요건을 충족시킬 수 있도록 하고 싶은 것입니다.
Reference
이 문제에 관하여(【도해 첨부】개발용 올레올레 인증국 SSL 통신(+docker 컨테이너 대응) : 2021), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/kaku3/items/e06a02ae1068de5c0663텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)