Skip to main content

Установка https без доступа извне (самоподписной сертификат)

ДляПри исполучеьзованияи самоподписного сертификата, Let'sничего Encrypt всне требуется, однако:

  • Соединоение придне является безоткпасным
  • Брыть 80 поаузерт наружу. Однако CSP не будет выдосавать предупрежден поия, необходимуо добавить исключение
  • буд
  • Нетльзя использовать CSP, как PWA приложение
  • т
  • Исполькзовать дляCSP Client можно получноценно

Самоподпиясной сертификат

export MYSITE=csp
mkdir -p /etc/nginx/ssl/${MYSITE}
openssl req -x509 -nodes -days 3650 -subj /C=CA/ST=None/L=NB/O=None/CN=${MYSITE} -newkey rsa:2048 -keyout /etc/nginx/ssl/${MYSITE}/ssl.key -out /etc/nginx/ssl/${MYSITE}/cert.crt

В MYSITE можно указать свой домен (напр. mysite.ru)

Установка nginx

apt install nginx  
certbotrm 
certbot certonly --standalone -d example.com
certbot renew --standalone/etc/nginx/sites-enabled/default  

НСоздастройка nginx - 80 порт снаружи должен быть проброшенфайл на него/etc/nginx/sites-enabled/csp

  server {
    listen 81 default_server;80;
    listen [::]:8180;

    default_server;

        rooterror_log /var/www/html;log/nginx/csp-error.log warn;

    location / {
      #Websocket support
      proxy_set_header Upgrade $http_upgrade;
      proxy_set_header Connection $http_connection;
      proxy_http_version 1.1;

      #Proxy
      client_max_body_size 100m;
      add_header       X-Served-By $host;
      proxy_set_header Host $host;
      proxy_set_header X-Forwarded-Scheme $scheme;
      proxy_set_header X-Forwarded-Proto  $scheme;
      proxy_set_header X-Forwarded-For    $proxy_add_x_forwarded_for;
      proxy_set_header X-Real-IP          $remote_addr;
      proxy_pass       http://127.0.0.1:8080;
    }

    location ^~ /.well-known/acme-challenge/ {
        default_type "text/plain";
        root /var/www/letsencrypt;acme;
    }
        location / {
            return 403;
        }

}

Запуск получения сертификата:

certbot certonly --webroot -w /var/www/letsencrypt -d mydomain.com

Настройка nginx для https CSP:

server {
    server_name mydomain.com;

    listen 443 ssl;
    #listen managed[::]:443 by Certbotssl;

    ssl_certificate /etc/letsencrypt/live/mydomain.com/fullchain.pem;nginx/ssl/csp/cert.crt;
    ssl_certificate_key /etc/letsencrypt/live/mydomain.com/privkey.pem;
    include /etc/letsencrypt/options-ssl-nginx.conf;
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;

    access_log /var/log/nginx/csp-access.log;
    error_log /var/log/nginx/csp-error.log warn;

    location / {
    }

    #websocket

    charset utf-8;
    client_max_body_size 100m;ssl/csp/ssl.key;
  }

ln -s /etc/nginx/sites-available/csp /etc/nginx/sites-enabled/csp
service nginx restart