diff --git a/Dockerfile b/Dockerfile index e2de5fd..9098a36 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,9 +1,10 @@ -FROM nginx:stable-alpine +FROM nginx:1.26.2-alpine-slim COPY config/nginx.conf.template /etc/nginx/templates/ COPY ./html/ /usr/share/nginx/html/ ENV LKRP_UL_URL="https://lkrp-dev.micord.ru/ul/" -ENV LKRP_UL_LANDING="https://lkrp-dev.micord.ru/ul/home.html" +ENV LKRP_UL_LANDING="https://lkrp-dev.micord.ru/ul/#/home" ENV LKRP_FL_URL="https://lkrp-dev.micord.ru/fl/" -ENV LKRP_FL_LANDING="https://lkrp-dev.micord.ru/fl/home.html" +ENV LKRP_FL_LANDING="https://lkrp-dev.micord.ru/fl/#/home" +ENV LKRP_CRT_CHECK_URL="https://xn--1-6tb.xn--b1afabzvcegckfhg.xn--p1ai/" diff --git a/config/nginx.conf.template b/config/nginx.conf.template index fdcae5d..fa3eeab 100644 --- a/config/nginx.conf.template +++ b/config/nginx.conf.template @@ -1,5 +1,5 @@ log_format nginx_main - '$remote_addr - $remote_user [$time_local] $request ' + '$http_x_real_ip - $remote_user [$time_local] $request ' '"$status" $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for" ' '"$request_filename" "$gzip_ratio" $upstream_response_time server: $host : $document_root $fastcgi_script_name '; @@ -13,6 +13,8 @@ server { sendfile off; charset utf-8; + server_tokens off; + client_max_body_size 32m; ## @@ -55,11 +57,28 @@ server { index index.html; expires -1; + add_header Content-Security-Policy "frame-ancestors 'none'; default-src 'self'; connect-src 'self' https://xn--1-6tb.xn--b1afabzvcegckfhg.xn--p1ai/ https://xn--2-6tb.xn--b1afbulhcegckfhg.xn--p1ai/; script-src 'self'; style-src 'unsafe-inline' 'self' data:; font-src 'self' data:; img-src 'self' data:;"; + + # Media: images, icons, video, audio, HTC + location ~* \.(?:jpg|jpeg|gif|png|ico|cur|gz|svg|svgz|mp4|mp3|ogg|ogv|webm|htc|woff2|woff|ttf)$ { + expires 1M; + access_log off; + # max-age must be in seconds + add_header Cache-Control "max-age=2629746, public"; + } + # CSS and Javascript + location ~* \.(?:css|js)$ { + expires 1y; + access_log off; + add_header Cache-Control "max-age=31556952, public"; + } + ssi on; set $flUrl "${LKRP_FL_URL}"; set $flLandingUrl "${LKRP_FL_LANDING}"; set $ulUrl "${LKRP_UL_URL}"; set $ulLandingUrl "${LKRP_UL_LANDING}"; + set $certUrl "${LKRP_CRT_CHECK_URL}"; try_files $uri $uri/ $uri/index.html; } diff --git a/html/css/inbox.css b/html/css/inbox.css index 9ed93db..72631a2 100644 --- a/html/css/inbox.css +++ b/html/css/inbox.css @@ -232,17 +232,17 @@ a.btn:is(:hover, :focus, :active) { margin-top: var(--indent-medium); } -.browser-check-content { +.cert-check-content { font-family: 'Golos'; font-size: var(--size-text-secondary); padding: var(--indent-mini) var(--w-screen) var(--indent-mini) calc(var(--w-screen) + 38px); background-color: var(--bg-warn); } -.browser-check-text { +.cert-check-text { position: relative; padding-left: 40px; } -.browser-check-text::before { +.cert-check-text::before { position: absolute; content: url(../img/svg/info.svg); left: 0; diff --git a/html/img/svg/fl.svg b/html/img/svg/fl.svg index a197b6f..1ab6dfd 100644 --- a/html/img/svg/fl.svg +++ b/html/img/svg/fl.svg @@ -1,26 +1,21 @@ - - - - + + + + - - - - - - - - - + + + + + + + + - - - - + - diff --git a/html/img/svg/ul.svg b/html/img/svg/ul.svg index 305cc02..2ebaa04 100644 --- a/html/img/svg/ul.svg +++ b/html/img/svg/ul.svg @@ -1,17 +1,10 @@ - - - - - - - - - - - - - - - - + + + + + + + + + diff --git a/html/index.html b/html/index.html index 9b929c0..0d580bd 100644 --- a/html/index.html +++ b/html/index.html @@ -4,25 +4,26 @@ + + +
-
Военный комиссариат Министерства обороны Российской Федерации
+
Реестр повесток Российской Федерации
-
-
-
-
Для обеспечения защищённого соединения с сайтом реестра повесток необходимо установить браузер Яндекс или Chromium GOST.
+
+
+
+
Для обеспечения защищенного соединения с сайтом реестра повесток необходимо установить сертификат безопасности. Он размещен на официальном сайте Портала государственных услуг Российской Федерации. Для установки воспользуйтесь инструкцией
-
@@ -30,7 +31,7 @@
Для граждан
Проверить повестки на Ваше имя и получить выписку из Реестра можно в ">Личном кабинете
" class="btn">Подробнее -
+
Для организаций
@@ -42,4 +43,4 @@
- \ No newline at end of file + diff --git a/html/script/cert-checker.js b/html/script/cert-checker.js new file mode 100644 index 0000000..9b421ff --- /dev/null +++ b/html/script/cert-checker.js @@ -0,0 +1,10 @@ +document.addEventListener("DOMContentLoaded", () => { + const certUrl = document.getElementById("cert-check-info").dataset.certUrl; + fetch(certUrl, { mode: "no-cors" }) + .then((response) => { + document.getElementById("cert-check-info").hidden = true; + }) + .catch((error) => { + console.error("Fetch error:", error.message || error); + }); +}); \ No newline at end of file diff --git a/nginx.conf b/nginx.conf deleted file mode 100644 index 3c91a64..0000000 --- a/nginx.conf +++ /dev/null @@ -1,60 +0,0 @@ -log_format nginx_main - '$remote_addr - $remote_user [$time_local] $request ' - '"$status" $body_bytes_sent "$http_referer" ' - '"$http_user_agent" "$http_x_forwarded_for" ' - '"$request_filename" "$gzip_ratio" $upstream_response_time server: $host : $document_root $fastcgi_script_name '; - -server { - listen 80 default; - - access_log /var/log/nginx/access.log nginx_main; - error_log /var/log/nginx/error.log error; - - sendfile off; - charset utf-8; - - client_max_body_size 32m; - - ## - # `gzip` Settings - # - # - gzip on; - gzip_disable "msie6"; - - gzip_vary on; - gzip_proxied any; - gzip_comp_level 6; - gzip_buffers 16 8k; - gzip_http_version 1.1; - gzip_min_length 256; - gzip_types - application/atom+xml - application/geo+json - application/javascript - application/x-javascript - application/json - application/ld+json - application/manifest+json - application/rdf+xml - application/rss+xml - application/xhtml+xml - application/xml - font/eot - font/otf - font/ttf - image/svg+xml - text/css - text/javascript - text/plain - text/xml; - - root /usr/share/nginx/html; - - location / { - index index.html; - expires -1; - try_files $uri $uri/ $uri/index.html; - } - -} diff --git a/readme.md b/readme.md index d92f049..59a9612 100644 --- a/readme.md +++ b/readme.md @@ -4,4 +4,5 @@ * LKRP_UL_URL - ссылка на личный кабинет юридического лица * LKRP_UL_LANDING - ссылка на главную страницу личного кабинета юридического лица * LKRP_FL_URL - ссылка на личный кабинет физического лица -* LKRP_FL_LANDING - ссылка на главную страницу личного кабинета физического лица \ No newline at end of file +* LKRP_FL_LANDING - ссылка на главную страницу личного кабинета физического лица +* LKRP_CRT_CHECK_URL - ссылка на ресурс с сертификатом, необходим для отображения уведомления установки сертификата для пользователя (обязательно должен обращаться по протоколу https) \ No newline at end of file