모름

 

Dotnet 서버 프로젝트의

 

[1] Program.cs에 아래의 코드 추가.

app.UseHttpsRedirection();
app.UseHsts();

 

app.UserHttpsRedirection()은 서버에 들어온 http 요청을 https로 리디렉션하는 중간 미들웨어를 추가해줌 

app.UserHsts(); 는 클라이언트에게 해당 서버가 https를 통해 통신해야함을 알려주는 미들웨어를 추가해줌.

 

[2] Docker compose 파일을 수정함.

services:
  mysever:
    image: vrmorm/mysever
    container_name: mysever
    ports:
      - '80:80'
      - '443:443'
    restart: unless-stopped
    environment:
      - ASPNETCORE_ENVIRONMENT=Development
      - ASPNETCORE_URLS=https://+:443;http://+:80
      - ASPNETCORE_HTTPS_PORT=443
      - ASPNETCORE_Kestrel__Certificates__Default__Password=password
      - ASPNETCORE_Kestrel__Certificates__Default__Path=/https/ssl.pfx
    volumes:
      - ./ssl.pfx:/https/ssl.pfx
...

 

아래 구간이 추가된다.

environment:
- ASPNETCORE_ENVIRONMENT=Development
- ASPNETCORE_URLS=https://+:443;http://+:80
- ASPNETCORE_HTTPS_PORT=443
- ASPNETCORE_Kestrel__Certificates__Default__Password=emem7711!
- ASPNETCORE_Kestrel__Certificates__Default__Path=/https/ssl.pfx
volumes:
- ./ssl.pfx:/https/ssl.pfx

 

@ 참고 (volume 경로 설정이랑 환경변수는 매일 헷갈림... ㅠ)

volumes: 에서

- [./ssl.pfx]:/https/ssl.pfx 는 ./(현재디렉토리 경로)의 ssl.pfx(ssl 인증서 파일)을 의미함

- ./ssl.pfx[:/https/ssl.pfx] 는 docker container의 파일 경로를 의미함. 경로가 없으면 자동 생성해서 docker container 파일로 가져옴.

 

environment: 에서

- ASPNETCORE_Kestrel__Certificates__Default__Path=[/https/ssl.pfx] 이 경로는 앞서 volumes에서 설정한 파일 경로입니다. 해당 경로에서 ssl 인증서 파일을 조회해서 확인함.