Как настроить SSL для локального сайта, работающего в Docker на Windows, чтобы можно было открывать его через HTTPS?
В моем случае установлен Docker с Apache и сайт работает через docker-compose. У меня есть белый IP, к которому привязан домен, купленный на 2domains. Я также приобрел SSL для этого домена. Я пробросил порты на моем роутере, чтобы сайт работал без SSL. Как мне настроить SSL, чтобы открывать сайт через HTTPS?
Вот мой файл docker-compose.yml:
```yaml
version: '2.2'
services:
dev:
image: hidden-url
container_name: dev
environment:
- APACHE_RUN_USER=#1000
- APACHE_RUN_GROUP=#33
volumes:
- ./www:/app/src/www
- ./upload:/app/src/www/upload
ports:
- 8085:80
- 443:443
networks:
- dev
mysql:
container_name: mysql
image: hidden-url
environment:
MYSQL_DATABASE: ***
MYSQL_USER: ***
MYSQL_PASSWORD: ***
MYSQL_ROOT_PASSWORD: ***
volumes:
- db.slk:/var/lib/mysql
- /etc/localtime:/etc/localtime/:ro
expose:
- 3306
networks:
- dev
restart: always
volumes: {"db"}
networks: {"dev"}
```
Для настройки SSL-соединения для вашего локального сайта, работающего в Docker на Windows, вам понадобятся следующие шаги:
1. Скопируйте файлы сертификата SSL (обычно это файлы .crt и .key) в папку, где находится ваш файл docker-compose.yml.
2. Внесите изменения в файл docker-compose.yml, чтобы добавить привязку и перенаправление порта для SSL:
```yaml
version: '2.2'
services:
dev:
image: hidden-url
container_name: dev
environment:
- APACHE_RUN_USER=#1000
- APACHE_RUN_GROUP=#33
volumes:
- ./www:/app/src/www
- ./upload:/app/src/www/upload
- ./certs:/etc/apache2/certs
ports:
- 8085:80
- 443:443
networks:
- dev
mysql:
container_name: mysql
image: hidden-url
environment:
MYSQL_DATABASE: ***
MYSQL_USER: ***
MYSQL_PASSWORD: ***
MYSQL_ROOT_PASSWORD: ***
volumes:
- db.slk:/var/lib/mysql
- /etc/localtime:/etc/localtime/:ro
expose:
- 3306
networks:
- dev
restart: always
volumes:
db:
certs:
networks:
dev:
```
3. Создайте новую папку с именем "certs" в той же директории, где находится файл docker-compose.yml.
4. Скопируйте файлы сертификата SSL в созданную папку "certs".
5. Откройте файл Apache-конфигурации (обычно это файл apache2.conf или httpd.conf, в зависимости от вашей установки) в контейнере Apache и настройте его для использования сертификата SSL. Здесь требуются изменения, связанные с путями к сертификатам SSL.
6. Перезапустите контейнер Apache.
Теперь ваш локальный сайт должен быть доступен через HTTPS по порту 443.
RUN echo " IdentityFile ~/.ssh/id_rsa" >> /etc/ssh/ssh_config
mkdir -p /root/.ssh && \
chmod 0700 /root/.ssh && \
ssh-keyscan 192.168.10.212 >> /root/.ssh/known_hosts && \
ssh-keyscan 192.168.10.119 >> /root/.ssh/known_hosts
echo "$ssh_prv_key" > ~/.ssh/id_rsa && \
echo "$ssh_pub_key" > ~/.ssh/id_rsa.pub && \
chmod 600 ~/.ssh/id_rsa && \
chmod 600 ~/.ssh/id_rsa.pub