1
0
mirror of https://gitlab.com/MoonTestUse1/AdministrationItDepartmens.git synced 2025-08-14 00:25:46 +02:00

ssl сертификат

This commit is contained in:
MoonTestUse1
2025-01-03 00:20:01 +06:00
parent 7473298ba1
commit a88ca1fe14
5 changed files with 94 additions and 6 deletions

View File

@@ -12,9 +12,23 @@ RUN npm run build
FROM nginx:alpine
# Установка certbot
RUN apk add --no-cache certbot certbot-nginx
COPY --from=build /app/dist /usr/share/nginx/html
COPY docker/frontend/nginx.conf /etc/nginx/conf.d/default.conf
EXPOSE 80
# Создаем директории для сертификатов и certbot
RUN mkdir -p /etc/letsencrypt
RUN mkdir -p /var/www/certbot
CMD ["nginx", "-g", "daemon off;"]
# Копируем скрипты
COPY docker/frontend/ssl-renew.sh /etc/periodic/daily/ssl-renew
COPY docker/frontend/init-ssl.sh /docker-entrypoint.d/init-ssl.sh
RUN chmod +x /etc/periodic/daily/ssl-renew
RUN chmod +x /docker-entrypoint.d/init-ssl.sh
EXPOSE 80 443
# Запускаем crond и nginx
CMD ["sh", "-c", "crond && /docker-entrypoint.d/init-ssl.sh"]

View File

@@ -0,0 +1,23 @@
#!/bin/sh
# Остановка nginx
nginx -s stop || true
# Получение сертификата
certbot certonly --standalone \
--email crocoman7887@gmail.com \
--agree-tos \
--no-eff-email \
--staging \
-d itformhelp.ru
# После успешного получения сертификата в staging, получаем боевой сертификат
certbot certonly --standalone \
--email crocoman7887@gmail.com \
--agree-tos \
--no-eff-email \
--force-renewal \
-d itformhelp.ru
# Запуск nginx
nginx -g "daemon off;"

View File

@@ -1,6 +1,32 @@
server {
listen 80;
server_name localhost;
server_name itformhelp.ru;
# Редирект с HTTP на HTTPS
location / {
return 301 https://$host$request_uri;
}
# Для валидации Let's Encrypt
location /.well-known/acme-challenge/ {
root /var/www/certbot;
}
}
server {
listen 443 ssl;
server_name itformhelp.ru;
# SSL сертификаты
ssl_certificate /etc/letsencrypt/live/itformhelp.ru/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/itformhelp.ru/privkey.pem;
# Оптимизация SSL
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers off;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
root /usr/share/nginx/html;
index index.html;
@@ -47,8 +73,6 @@ server {
}
error_page 404 /index.html;
# Redirect server error pages to the static page /50x.html
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;

View File

@@ -0,0 +1,7 @@
#!/bin/sh
# Обновляем сертификат
certbot renew --quiet
# Перезагружаем nginx для применения обновленного сертификата
nginx -s reload