====== Let’s Encrypt ====== Let’s Encrypt is a new Certificate Authority:\\ It’s **free**, **automated**, and **open**. * https://letsencrypt.org/ * https://github.com/letsencrypt/letsencrypt * https://gist.github.com/renchap/c093702f06df69ba5cac#file-readme-md ===== Instalace ACME ===== Přidat uživatele shell# adduser letsencrypt Nainstalovat GIT shell# yum install git.x86_64 nmap-ncat.x86_64 openssl.x86_64 Instalace shell# su - letsencrypt shell$ git clone https://github.com/Neilpang/acme.sh.git shell$ cd ./acme.sh shell$ ./acme.sh --install Oprávnění uživatele letsencrypt pro reload httpd.service shell# visudo letsencrypt ALL=NOPASSWD:/bin/systemctl reload httpd.service ===== Nový certifikát ===== Příklad vystavení cerifikátu (Apache, není třeba root) shell# .acme.sh/acme.sh --issue -d example.com -d www.example.com -w /data/www/example.com/www-le/ --reloadcmd "sudo systemctl reload httpd.service" Příklad vystavení certifikátu bez webserveru (netcat, root nebo práva na port 80) shell# ./acme.sh --issue --standalone -d example.com -d www.example.com --keylength ec-256 ====== Apache HTTP secure ====== # example.com ServerName example.com ServerAlias www.example.com RewriteEngine On RewriteRule ^/(.*) https://www.example.com/$1 [L,R=301] ServerName example.com RewriteEngine On RewriteRule ^/(.*) https://www.example.com/$1 [L,R=301] SSLEngine on SSLProtocol All -SSLv2 -SSLv3 SSLHonorCipherOrder on SSLCipherSuite ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4 SSLCompression Off Header always set Strict-Transport-Security "max-age=63072000; includeSubDomains; preload" # Header always set X-Frame-Options SAMEORIGIN Header always set X-Frame-Options DENY SSLCertificateFile /home/letsencrypt/.acme.sh/example.com/example.com.cer SSLCertificateKeyFile /home/letsencrypt/.acme.sh/example.com/example.com.key SSLCACertificateFile /home/letsencrypt/.acme.sh/example.com/fullchain.cer ServerName www.example.com DocumentRoot /data/www/example.com/www ServerAdmin blazek@example.com SSLEngine on SSLProtocol All -SSLv2 -SSLv3 SSLHonorCipherOrder on SSLCipherSuite ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4 SSLCompression Off Header always set Strict-Transport-Security "max-age=63072000; includeSubDomains; preload" # Header always set X-Frame-Options SAMEORIGIN Header always set X-Frame-Options DENY SSLCertificateFile /home/letsencrypt/.acme.sh/example.com/example.com.cer SSLCertificateKeyFile /home/letsencrypt/.acme.sh/example.com/example.com.key SSLCACertificateFile /home/letsencrypt/.acme.sh/example.com/fullchain.cer ErrorLog logs/example.com-error_log CustomLog logs/example.com-access_log common AllowOverride All Require all granted # let's encrypt Alias /.well-known/ /data/www/example.com/www-le/.well-known/ AllowOverride None Require all granted Satisfy Any