[Redmine] Docker로 HTTPS 지원
5947 단어 letsencryptRedmine도커AWS
AWS 환경에 Redmine을 구축하고, 도메인 취득·DNS 설정까지를 실시하고 있습니다.
[AWS] 거의 완전 자동 Redmine 구축
[AWS] Route53 도메인 검색
이 기사에서는 HTTP 통신에서 HTTPS 통신으로 전환하는 방법을 소개합니다.
덧붙여 본 기사에서 사용하는 도메인은 예로서
www.example.com
라고 하겠습니다.대응 방법
이번에는
letsencrypt
를 사용합니다.letsencrypt는 무료로 SSL 증명서를 발행할 수 있어 누구라도 SSL/TLS 통신을 실현할 수 있는 서비스가 되고 있습니다.
SSL 증명서는 신청이나 작성·설정에 시간을 필요로 합니다만, 이하 리포지토리는 Docker 컨테이너 하나 세우는 것으로 증명서의 취득·설정을 모두 자동으로 실시해 줍니다.
이런 편리한 것을 무료로 전개해 준다니 매우 고맙습니다. .
README에 작성된 대로 docker-compose.yml을 편집합니다.
docker-compose.yml
version: '3'
services:
redmine:
image: redmine:4.0.5
restart: always
container_name: redmine_container
environment:
- REDMINE_DB_POSTGRES=db
- REDMINE_DB_USERNAME=postgres
- REDMINE_DB_PASSWORD=postgres
- VIRTUAL_HOST=www.example.com <- ご自身のドメイン
expose:
- 3000
volumes:
- ./redmine/files:/usr/src/redmine/files
links:
- db
db:
image: postgres:10.3
restart: always
environment:
- POSTGRES_USER=postgres
- POSTGRES_PASSWORD=postgres
volumes:
- ./postgres/data:/var/lib/postgresql/data
https-portal:
image: steveltn/https-portal:latest
ports:
- '80:80'
- '443:443'
links:
- redmine
restart: always
environment:
DOMAINS: 'www.example.com -> http://redmine_container:3000' <-ご自身のドメイン
#STAGE: 'production'
#FORCE_RENEW: 'true'
단지 이것만으로 SSL 통신을 실현할 수 있습니다.
letsencrypt는 신청에 제한이 있으므로 처음에는 다음을 주석 처리하고 컨테이너를 시작하십시오.
코멘트 아웃 하는 것으로, SSL 증명서 대신에 자기 증명으로 테스트를 실시해 증명서 작성에 문제가 없는가 판정해 줍니다.
#STAGE: 'production'
#FORCE_RENEW: 'true'
컨테이너를 시작합시다.
$ docker-compose up -d
로그 확인 방법은 다음과 같습니다.
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
a328ea2b95a3 steveltn/https-portal:latest "/init" 4 hours ago Up 4 hours 0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp redminedocker_https-portal_1
f24edf5e687f redmine:4.0.5 "/docker-entrypoint.…" 4 hours ago Up 4 hours 3000/tcp redmine_container
8f51137977c3 postgres:10.3 4 hours ago Up 4 hours 5432/tcp redminedocker_db_1
$ docker logs a328ea2b95a3
로그를 확인하고 무사히 성공하면 다음과 같은 출력이 될 것입니다.
Found domains: www.example.com
Getting directory...
Directory found!
Registering account...
Registered!
Creating new order...
Order created!
Verifying www.example.com...
www.example.com verified!
Signing certificate...
성공하면 코멘트 아웃을 반환하고 컨테이너를 다시 시작하십시오.
또한 이전에 생성한 AWS의 보안 그룹이 HTTPS를 허용하지 않는다고 생각합니다.
콘솔에서 인바운드로 HTTPS를 통과하도록 설정합니다.
브라우저에서 자신의 도메인을
https
로 두드려보세요.이것으로 HTTPS 대응이 완료되었습니다.
끝에
letsencrypt는 매우 훌륭한 서비스이지만, 신뢰성이 다소 뒤떨어지기 때문에 상용 이용하는 서비스에서는 보통 SSL 증명서를 구입합시다.
Reference
이 문제에 관하여([Redmine] Docker로 HTTPS 지원), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/hrtkjm/items/49f34ed259a38193c6be텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)