В одном из предыдущих моих видео посвященных Docker вы попросили показать как прицепить к докеру https. Речь шла про самоподписанный сертифика и бесплатный сертификат от Let’s Encrypt. Вы просили — я сделал. В видео ниже я показываю как создать самоподписанный сертификат в образе докера с nginx. Использовать буду Docker Compose, но в целом можно обойтись и без него.
Ниже исходный код Dockerfile
1 2 3 4 5 6 7 8 9 10 11 12 |
FROM nginx:1.20-alpine # apline based = ubuntu => apk istead apt RUN apk update && apk add openssl RUN rm /etc/nginx/conf.d/default.conf && mkdir -p /home/web/www RUN openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048 &&\ openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/certs/self.key -out /etc/ssl/certs/self.crt \ -subj "/C=RU/ST=Moscow/L=Kremlin/O=Azzrael Code/OU=Org/CN=azz.code" COPY nginx.conf /etc/nginx/conf.d COPY ssl-params.conf /etc/nginx/ssl-params.conf |
И ssl-params.conf
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
# это просто копипаста с просторов, # настройки могут быть и другими ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_prefer_server_ciphers on; ssl_ciphers "EECDH+CHACHA20:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5"; ssl_ecdh_curve secp384r1; ssl_session_cache shared:SSL:10m; ssl_session_tickets off; ssl_stapling on; ssl_stapling_verify on; resolver 8.8.8.8 8.8.4.4 valid=300s; resolver_timeout 5s; # Disable preloading HSTS for now. You can use the commented out header line that includes # the "preload" directive if you understand the implications. #add_header Strict-Transport-Security "max-age=63072000; includeSubdomains; preload"; add_header Strict-Transport-Security "max-age=63072000; includeSubdomains"; add_header X-Frame-Options DENY; add_header X-Content-Type-Options nosniff; ssl_dhparam /etc/ssl/certs/dhparam.pem; |
Остальное кажется достаточно очевидным, поэтому не выкладываю.