рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдореИрдВ рдЖрдкрдХреЗ рд╕рд╛рде рдЕрдкрдиреЗ рдбреЙрдХрд░ рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд▓рд┐рдП рдПрд╕рдПрд╕рдПрд▓ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдмрдирд╛рдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рд╕рд╛рдЭрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рдЬреИрд╕реЗ рдЗрдВрдЯрд░рдиреЗрдЯ рдХреЗ рд░реВрд╕реА рднрд╛рд╖рд╛ рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдореЗрдВ - рдореБрдЭреЗ рдПрдХ рд╕рдорд╛рди рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рдорд┐рд▓рд╛ред

рдХрдЯреМрддреА рдХреЗ рддрд╣рдд рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реАред
рд╣рдорд╛рд░реЗ рдкрд╛рд╕ docker v.17.05, docker-compose v.1.21, Ubuntu Server 18 рдФрд░ рд╕рд╛рдл LetEccrypt рдХрд╛ рдПрдХ рдкрд┐рдВрдЯ рдерд╛ред рдРрд╕рд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдбреЙрдХрдЯрд░ рдкрд░ рдЙрддреНрдкрд╛рджрди рдХреЛ рддреИрдирд╛рдд рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реЛрдЧрд╛ред рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдЖрдкрдиреЗ рдбреЙрдХрд░ рдХреЛ рдЗрдХрдЯреНрдард╛ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛, рддреЛ рд░реЛрдХрдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИредрдЗрд╕рд▓рд┐рдП, рд╢реБрд░реБрдЖрдд рдХреЗ рд▓рд┐рдП, рдореИрдВ рдЖрдкрдХреЛ рдорд╛рдирдХ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдкреНрд░рджрд╛рди рдХрд░реВрдВрдЧрд╛ - рдЬреЛ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рджреЗрд╡ рдЪрд░рдг рдкрд░ рдереА, рдЕрд░реНрдерд╛рддреНред рдмрд┐рдирд╛ 443 рдкреЛрд░реНрдЯ рдФрд░ рдПрд╕рдПрд╕рдПрд▓ рдХреЗ рд╕рд╛рдорд╛рдиреНрдп:
рдбреЛрдХрд░-compose.ymlversion: '2' services: php: build: ./php-fpm volumes: - ./StomUp:/var/www/StomUp - ./php-fpm/php.ini:/usr/local/etc/php/php.ini depends_on: - mysql container_name: "StomPHP" web: image: nginx:latest ports: - "80:80" - "443:443" volumes: - ./StomUp:/var/www/StomUp - ./nginx/main.conf:/etc/nginx/conf.d/default.conf depends_on: - php mysql: image: mysql:5.7 command: mysqld --sql_mode="" environment: MYSQL_ROOT_PASSWORD: xxx ports: - "3333:3306"
nginx / main.conf server { listen 80; server_name *.stomup.ru stomup.ru; root /var/www/StomUp/public; client_max_body_size 5M; location / { # try to serve file directly, fallback to index.php try_files $uri /index.php$is_args$args; } location ~ ^/index\.php(/|$) { #fastcgi_pass unix:/var/run/php7.2-fpm.sock; fastcgi_pass php:9000; fastcgi_split_path_info ^(.+\.php)(/.*)$; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name; fastcgi_param DOCUMENT_ROOT $realpath_root; fastcgi_buffer_size 128k; fastcgi_buffers 4 256k; fastcgi_busy_buffers_size 256k; internal; } location ~ \.php$ { return 404; } error_log /var/log/nginx/project_error.log; access_log /var/log/nginx/project_access.log; }
рдЕрдЧрд▓рд╛, рд╣рдореЗрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрд╕рдПрд╕рдПрд▓ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдИрдорд╛рдирджрд╛рд░реА рд╕реЗ - рдореИрдВрдиреЗ 2 рдШрдВрдЯреЗ рдХреЗ рдЖрджреЗрд╢ рдкрд░ рдХреЙрдо рдЬреЛрди I рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд┐рдпрд╛ред рд╕рднреА рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рд╡рд┐рдХрд▓реНрдк рджрд┐рд▓рдЪрд╕реНрдк рд╣реИрдВред рд▓реЗрдХрд┐рди рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд╡рд░реНрддрдорд╛рди рдЪрд░рдг рдореЗрдВ, рд╣рдореЗрдВ (рд╡реНрдпрд╡рд╕рд╛рдп) рдХреЛ рдЬрд▓реНрджреА рд╕реЗ рдФрд░ рдордЬрд╝рдмреВрддреА рд╕реЗ
рдПрд╕рдПрд╕рдПрд▓ рд▓реЗрдЯреЗрд╕реНрдЯреЗрдХреНрдЯ рдХреЛ
рдирдЧреНрдиреЗрдХреНрд╕ рдХрдВрдЯреЗрдирд░ рдореЗрдВ
рдмрд╛рдВрдзрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдФрд░ рдЕрдм рдФрд░ рдирд╣реАрдВред
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╣рдордиреЗ рд╕рд░реНрд╡рд░ рдкрд░
рд╕рд░реНрдЯрд┐рдлрд┐рдХреЗрдЯ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛
sudo apt-get install certbot
рдЗрд╕рдХреЗ рдмрд╛рдж, рд╣рдордиреЗ рдЕрдкрдиреЗ рдбреЛрдореЗрди рдХреЗ рд▓рд┐рдП рд╡рд╛рдЗрд▓реНрдбрдХрд╛рд░реНрдб рдкреНрд░рдорд╛рдгрдкрддреНрд░ рддреИрдпрд╛рд░ рдХрд┐рдП
sudo certbot certonly -d stomup.ru -d *.stomup.ru --manual --preferred-challenges dns
рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рдмрд╛рдж рд╕рд░реНрдЯрд┐рдлрд┐рдХреЗрдЯ рд╣рдореЗрдВ 2 TXT рд░рд┐рдХреЙрд░реНрдб рдкреНрд░рджрд╛рди рдХрд░реЗрдЧрд╛, рдЬрд┐рдиреНрд╣реЗрдВ DNS рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
_acme-challenge.stomup.ru TXT {CertBot}
рдФрд░ рдПрдВрдЯрд░ рджрдмрд╛рдПрдВред
рдЙрд╕рдХреЗ рдмрд╛рдж, рд╕рд░реНрдмреЛрдЯ DNS рдореЗрдВ рдЗрди рд░рд┐рдХреЙрд░реНрдб рдХреА рдЙрдкрд▓рдмреНрдзрддрд╛ рдХреА рдЬрд╛рдВрдЪ рдХрд░реЗрдЧрд╛ рдФрд░ рдЖрдкрдХреЗ рд▓рд┐рдП рдкреНрд░рдорд╛рдг рдкрддреНрд░ рдмрдирд╛рдПрдЧрд╛ред
рдпрджрд┐ рдЖрдкрдиреЗ рдПрдХ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдЬреЛрдбрд╝рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╕рд░реНрдЯрд┐рдлрд┐рдХреЗрдЯ рдирд╣реАрдВ рдорд┐рд▓рд╛, рддреЛ 5-10 рдорд┐рдирдЯ рдХреЗ рдмрд╛рдж рдХрдорд╛рдВрдб рдХреЛ рдкреБрдирдГ рдЖрд░рдВрдн рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ ред
рдареАрдХ рд╣реИ, рдпрд╣рд╛рдВ рд╣рдо 90 рджрд┐рдиреЛрдВ рдХреЗ рд▓рд┐рдП рд▓реЗрдЯреЗрд╕реНрдЯ рд╕рд░реНрдЯрд┐рдлрд┐рдХреЗрдЯ рдХреЗ рдЧрд░реНрд╡ рдХреЗ рдорд╛рд▓рд┐рдХ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЕрдм рд╣рдореЗрдВ рдЗрд╕реЗ рдбреЙрдХрд░ рдХреЛ рднреЗрдЬрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдкреНрд░рддрд┐рдмрдВрдзрд╛рддреНрдордХ рддрд░реАрдХреЗ рд╕реЗ, docker-compose.yml рдореЗрдВ, nginx рдЕрдиреБрднрд╛рдЧ рдореЗрдВ, рд╣рдо рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдХреЛ рд▓рд┐рдВрдХ рдХрд░рддреЗ рд╣реИрдВред
SSL рдХреЗ рд╕рд╛рде Docker-compose.yml рдЙрджрд╛рд╣рд░рдг version: '2' services: php: build: ./php-fpm volumes: - ./StomUp:/var/www/StomUp - /etc/letsencrypt/live/stomup.ru/:/etc/letsencrypt/live/stomup.ru/ - ./php-fpm/php.ini:/usr/local/etc/php/php.ini depends_on: - mysql container_name: "StomPHP" web: image: nginx:latest ports: - "80:80" - "443:443" volumes: - ./StomUp:/var/www/StomUp - /etc/letsencrypt/:/etc/letsencrypt/ - ./nginx/main.conf:/etc/nginx/conf.d/default.conf depends_on: - php mysql: image: mysql:5.7 command: mysqld --sql_mode="" environment: MYSQL_ROOT_PASSWORD: xxx ports: - "3333:3306"
рдХреНрдпрд╛ рдЖрдкрдиреЗ рд▓рд┐рдВрдХ рдХрд┐рдпрд╛ рд╣реИ? рд╕реБрдкрд░ - рдЬрд╛рд░реА рд░рдЦреЗрдВ:
рдЕрдм рд╣рдореЗрдВ рдкреЛрд░реНрдЯ
443 рдФрд░
SSL рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП
nginx config рдХреЛ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдмрджрд▓рдирд╛ рд╣реЛрдЧрд╛:
SSL рдХреЗ рд╕рд╛рде Main.conf config рдЙрджрд╛рд╣рд░рдг # server { listen 443 ssl http2; listen [::]:443 ssl http2; server_name *.stomup.ru stomup.ru; set $base /var/www/StomUp; root $base/public; # SSL ssl_certificate /etc/letsencrypt/live/stomup.ru/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/stomup.ru/privkey.pem; ssl_trusted_certificate /etc/letsencrypt/live/stomup.ru/chain.pem; client_max_body_size 5M; location / { # try to serve file directly, fallback to index.php try_files $uri /index.php$is_args$args; } location ~ ^/index\.php(/|$) { #fastcgi_pass unix:/var/run/php7.2-fpm.sock; fastcgi_pass php:9000; fastcgi_split_path_info ^(.+\.php)(/.*)$; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name; fastcgi_param DOCUMENT_ROOT $realpath_root; fastcgi_buffer_size 128k; fastcgi_buffers 4 256k; fastcgi_busy_buffers_size 256k; internal; } location ~ \.php$ { return 404; } error_log /var/log/nginx/project_error.log; access_log /var/log/nginx/project_access.log; } # HTTP redirect server { listen 80; listen [::]:80; server_name *.stomup.ru stomup.ru; location / { return 301 https://stomup.ru$request_uri; } }
рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрди рдЬреЛрдбрд╝рддреЛрдбрд╝ рдХреЗ рдмрд╛рдж - рд╣рдо рдбреЙрдХрд░-рдХрдВрдкреЛрдЬ рдХреЗ рд╕рд╛рде рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдореЗрдВ рдЬрд╛рддреЗ рд╣реИрдВ, рдбреЙрдХрдЯрд░-рдХрдВрдкреЛрдЬ рдЕрдк -d рд▓рд┐рдЦрддреЗ рд╣реИрдВред рдФрд░ рд╣рдо SSL рдХреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреА рдЬрд╛рдБрдЪ рдХрд░рддреЗ рд╣реИрдВред рд╕рдм рдХреБрдЫ рдЙрддрд╛рд░ рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдПред
рдореБрдЦреНрдп рдмрд╛рдд рдпрд╣ рдирд╣реАрдВ рднреВрд▓рддреА рд╣реИ рдХрд┐ рд▓реЗрдЯреЗрд╕реНрдЯ рд╕рд░реНрдЯрд┐рдлрд┐рдХреЗрдЯ 90 рджрд┐рдиреЛрдВ рдХреЗ рд▓рд┐рдП рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдЖрдкрдХреЛ рдЗрд╕реЗ
sudo certbot renew
рдорд╛рдзреНрдпрдо рд╕реЗ рдЕрдкрдбреЗрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдФрд░ рдлрд┐рд░
sudo certbot renew
рд╕рд╛рде рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛ рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
рд╡реИрдХрд▓реНрдкрд┐рдХ рд░реВрдк рд╕реЗ, рдЗрд╕ рдХреНрд░рдо рдХреЛ рдХреЛрдВрдЯреНрд░рд╛рдм рдореЗрдВ рдЬреЛрдбрд╝реЗрдВред
рдореЗрд░реА рд░рд╛рдп рдореЗрдВ, SSL рдХреЛ рдбреЙрдХрд░ рд╡реЗрдм-рдРрдк рд╕реЗ рдЬреЛрдбрд╝рдиреЗ рдХрд╛ рдпрд╣ рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рддрд░реАрдХрд╛ рд╣реИред
рдкреБрдирд╢реНрдЪ рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рд░рдЦреЗрдВ рдХрд┐ рдкрд╛рда рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рд╕рднреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЕрдВрддрд┐рдо рдирд╣реАрдВ рд╣реИрдВ, рдЕрдм рдкрд░рд┐рдпреЛрдЬрдирд╛ рдЧрд╣рд░реА рджреЗрд╡ рдЕрд╡рд╕реНрдерд╛ рдореЗрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЖрдкрд╕реЗ рдкреВрдЫрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рдЖрд▓реЛрдЪрдирд╛ рди рдХрд░реЗрдВ - рдЙрдиреНрд╣реЗрдВ рдХрдИ рдмрд╛рд░ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред