Запустите сервис докера по HTTPS - PullRequest
0 голосов
/ 12 июня 2018

В настоящее время я запускаю простой контейнер докера, используя следующие файлы.

DockerFile

FROM microsoft/aspnet:4.7.1
WORKDIR /inetpub/wwwroot
EXPOSE 80
COPY index.html .

docker-compose.yml

version: '3.4'

services:

testapp:
  image: mytestapp:${TAG:-latest}
build:
  context: .
  dockerfile: Dockerfile

docker-compose.override.yml

version: '3.4'

services:
  testapp:
   ports:
    - "9091:80"

Я использую образ Windows для создания своего контейнера с помощью следующей команды, и я могу получить к нему доступ с помощью http://localhost:9091/.

docker-compose -f docker-compose.yml -f docker-compose.override.yml build

Я хочу получить доступ к своему приложениюиспользуя HTTPS вместо http.

Какие шаги мне нужно выполнить?

Ответы [ 2 ]

0 голосов
/ 14 июня 2018

Спасибо, Джером, за ответ.Я сделал следующие вещи, чтобы https работал над моим контейнером.Я надеюсь, что это может быть полезно для кого-то.

  1. Добавить самоподписанный сертификат к изображению из этого сценария:

certificate.ps1

import-module webadministration

cd cert:
$cert = New-SelfSignedCertificate -DnsName myweb -Friendlyname MyCert -CertStoreLocation Cert:\LocalMachine\My

$rootStore = New-Object System.Security.Cryptography.X509Certificates.X509Store -ArgumentList Root, LocalMachine

$rootStore.Open("MaxAllowed")
$rootStore.Add($cert)
$rootStore.Close()

cd iis:
new-item -path IIS:\SslBindings\0.0.0.0!443 -value $cert
New-WebBinding -Name "Default Web Site" -IP "*" -Port 443 -Protocol https
iisreset
Изменения в моем файле docker-compose.override.yml : добавлен порт 443.
   version: '3.4'
     services:
       testapp.svc:
         ports:
           - "9091:80"
           - "9092:443"
Изменения в моем Dockerfile
    FROM microsoft/aspnet:4.7.1
    WORKDIR /inetpub/wwwroot
    EXPOSE 80 
    EXPOSE 443
    COPY index.html .
    COPY certificate.ps1 .
    RUN powershell.exe ./certificate.ps1
0 голосов
/ 12 июня 2018
  1. Вам необходимо настроить веб-сервер (внутри приложения Docker) для включения HTTPS.
  2. Открыть порт SSL (443) на Docker

    • Youможет рассмотреть возможность использования NGINX в качестве обратного прокси-сервера для вашего веб-сервера и настроить SSL в nginx
    • Кроме того, вы можете посмотреть на letsencrypt, чтобы получить бесплатный сертификат SSL для вашего домена, если это общедоступный сайт.
...