78 lines
7.3 KiB
HTML
78 lines
7.3 KiB
HTML
<span class="step" ng-if="activeStep === 'download'"><!--
|
|
|
|
step: download
|
|
|
|
--><span class="hljs-comment"><span class="counter">.</span> <strong>Download</strong> generated config:</span> <strong><a href="#" ng-click="downloadZip()">nginxconfig.io-{{ getDomains().join(',') }}.zip</a></strong>
|
|
<span class="hljs-comment"><strong>Upload</strong> to server's</span> <strong>{{ data.directory_nginx.replace(endingSlashRegex, '') }}</strong> <span class="hljs-comment">directory</span>
|
|
<span class="hljs-comment">- OR -</span>
|
|
<span class="hljs-comment"><strong>Copy</strong> as Base64 string:</span> <strong><a href="#" ng-mouseenter="prepareBase64()" ng-click="copyAsBase64()" ngclipboard data-clipboard-target="#base64-zip-line" ngclipboard-success="clipboardSuccess('base64-zip-line')">Copy to clipboard</a></strong> <span class="hljs-comment small">(echo 'BASE64' | base64 --decode > {{ data.directory_nginx }}nginxconfig.io-{{ getDomains().join(',') }}.zip)</span>
|
|
<span class="hljs-comment"><strong>Paste</strong> from clipboard and run the command</span>
|
|
<span class="hljs-comment"><span class="counter">.</span> Go to NGINX directory (over SSH):</span>
|
|
<span class="hljs-section">cd</span> {{ data.directory_nginx.replace(endingSlashRegex, '') }}
|
|
<span class="hljs-comment"><span class="counter">.</span> Backup current configuration:</span>
|
|
<span class="hljs-section">tar</span> <span class="hljs-attribute">-czvf</span> nginx_$(date +'%F_%H-%M-%S').tar.gz nginx.conf sites-available/ sites-enabled/ nginxconfig.io/
|
|
<span class="hljs-comment"><span class="counter">.</span> Unzip the uploaded archive:</span>
|
|
<span class="hljs-section">unzip</span> <span class="hljs-attribute">-o</span> nginxconfig.io-{{ getDomains().join(',') }}.zip <span class="hljs-comment">(you probably need to install <strong>unzip</strong>:</span> <span class="hljs-section"></span><strong>sudo</strong> <span class="hljs-section">apt-get</span> <span class="hljs-attribute">install</span> unzip<span class="hljs-comment">)</span></span><!--
|
|
|
|
|
|
|
|
--><span class="step" ng-if="activeStep === 'ssl'"><!--
|
|
|
|
step: ssl
|
|
|
|
--><!--
|
|
|
|
✔ SSL DH required --><span ng-if="isSSLDHRequired()"><span class="hljs-comment"><span class="counter">.</span> Generate Diffie-Hellman keys:</span>
|
|
<span class="hljs-section">openssl</span> <span class="hljs-attribute">dhparam</span> <span class="hljs-attribute">-out</span> {{ data.directory_nginx }}dhparam.pem <span class="hljs-number">{{ sslProfiles[ data.ssl_profile ].dh_param_size }}</span>
|
|
</span><!--
|
|
|
|
✔ Let's Encrypt
|
|
--><span ng-if="hasCertLetsEncrypt()"><span class="hljs-comment"><span class="counter">.</span> Create a common ACME-challenge directory (for Let's Encrypt):</span>
|
|
<span class="hljs-section">mkdir</span> <span class="hljs-attribute">-p</span> {{ data.directory_letsencrypt.replace(endingSlashRegex, '') }}
|
|
<span class="hljs-section">chown</span> <span class="hljs-attribute">{{ data.user }}</span> {{ data.directory_letsencrypt.replace(endingSlashRegex, '') }}</span></span><!--
|
|
|
|
|
|
|
|
--><span class="step" ng-if="activeStep === 'certbot'"><!--
|
|
|
|
step: certbot
|
|
|
|
--><span class="hljs-comment"><span class="counter">.</span> Comment out SSL related directives in configuration:</span>
|
|
<span class="hljs-section">sed</span> <span class="hljs-attribute">-i -r</span> 's/(listen .*443)/\1;#/g; s/(ssl_(certificate|certificate_key|trusted_certificate) )/#;#\1/g'<span ng-if="isUnified()"><!--
|
|
--> {{ data.directory_nginx }}nginx.conf</span><span ng-if="isModularized()"><span ng-repeat="(_site, _domain) in getDomains() track by $index" ng-if="isCertLetsEncrypt(_site)"><!--
|
|
--> {{ data.directory_nginx }}sites-{{ isSymlink() ? 'available' : 'enabled' }}/{{ _domain }}.conf</span></span>
|
|
<span class="hljs-comment"><span class="counter">.</span> Reload <strong>NGINX</strong>:</span>
|
|
<strong>sudo</strong> <span class="hljs-section">nginx</span> <span class="hljs-attribute">-t</span> && <strong>sudo</strong> <span class="hljs-section">systemctl</span> <span class="hljs-attribute">reload</span> nginx
|
|
<span class="hljs-comment"><span class="counter">.</span> Obtain certificate{{ getDomains().length > 1 ? 's' : '' }}:</span><!--
|
|
--><span ng-repeat="(_site, _domain) in getDomains() track by $index" ng-if="isCertLetsEncrypt(_site)">
|
|
<span class="hljs-section">certbot</span> <!--
|
|
--><span class="hljs-attribute">certonly</span> <!--
|
|
--><span class="hljs-attribute">--webroot</span> <!--
|
|
--><span ng-if="isNonWWW(_site) || isRedirect(_site)"><span class="hljs-attribute" tooltips tooltip-template="--domain" tooltip-side="top">-d</span> {{ _domain }} </span><!--
|
|
--><span ng-if="isWWW(_site) || isRedirect(_site)"><span class="hljs-attribute" tooltips tooltip-template="--domain" tooltip-side="top">-d</span> www.{{ _domain }} </span><!--
|
|
--><span ng-if="isCDN(_site)"><span class="hljs-attribute" tooltips tooltip-template="--domain" tooltip-side="top">-d</span> cdn.{{ _domain }} </span><!--
|
|
--><span class="hljs-attribute">--email</span> {{ data.sites[_site].email ? data.sites[_site].email : 'info@' + _domain }} <!--
|
|
--><span class="hljs-attribute" tooltips tooltip-template="--webroot-path" tooltip-side="top">-w</span> {{ data.directory_letsencrypt.replace(endingSlashRegex, '') }} <!--
|
|
--><span class="hljs-attribute" tooltips tooltip-template="--non-interactive" tooltip-side="top">-n</span> <!--
|
|
--><span class="hljs-attribute">--agree-tos</span> <!--
|
|
--><span class="hljs-attribute">--force-renewal</span></span>
|
|
<span class="hljs-comment"><span class="counter">.</span> Uncomment SSL related directives in configuration:</span>
|
|
<span class="hljs-section">sed</span> <span class="hljs-attribute">-i -r</span> 's/#?;#//g'<span ng-if="isUnified()"><!--
|
|
--> {{ data.directory_nginx }}nginx.conf</span><span ng-if="isModularized()"><span ng-repeat="(_site, _domain) in getDomains() track by $index" ng-if="isCertLetsEncrypt(_site)"><!--
|
|
--> {{ data.directory_nginx }}sites-{{ isSymlink() ? 'available' : 'enabled' }}/{{ _domain }}.conf</span></span>
|
|
<span class="hljs-comment"><span class="counter">.</span> Reload <strong>NGINX</strong>:</span>
|
|
<strong>sudo</strong> <span class="hljs-section">nginx</span> <span class="hljs-attribute">-t</span> && <strong>sudo</strong> <span class="hljs-section">systemctl</span> <span class="hljs-attribute">reload</span> nginx
|
|
<span class="hljs-comment"><span class="counter">.</span> Configure <strong>Certbot</strong> to reload <strong>NGINX</strong> after success renew:</span>
|
|
<span class="hljs-section">echo</span> <span class="hljs-attribute">-e</span> '#!/bin/bash\nnginx -t && systemctl reload nginx' | <strong>sudo</strong> <span class="hljs-section">tee</span> /etc/letsencrypt/renewal-hooks/post/nginx-reload.sh
|
|
<strong>sudo</strong> <span class="hljs-section">chmod</span> <span class="hljs-attribute">a+x</span> /etc/letsencrypt/renewal-hooks/post/nginx-reload.sh
|
|
<span class="hljs-comment"><span class="counter">.</span> Schedule renewing: <strong>Certbot</strong> will automatically renew any certificates that expire in less than 30 days</span></span><!--
|
|
|
|
|
|
|
|
--><span class="step" ng-if="activeStep === 'live'"><!--
|
|
|
|
step: live
|
|
|
|
--><span class="hljs-comment"><span class="counter">.</span> Reload <strong>NGINX</strong>:</span>
|
|
<strong>sudo</strong> <span class="hljs-section">nginx</span> <span class="hljs-attribute">-t</span> && <strong>sudo</strong> <span class="hljs-section">systemctl</span> <span class="hljs-attribute">reload</span> nginx</span>
|