Scale up as you grow — whether you're running one virtual machine or ten thousand.

From GPU-powered inference and Kubernetes to managed databases and storage, get everything you need to build, scale, and deploy intelligent applications.

This textbox defaults to using Markdown to format your answer.
You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!
Thanks for sharing, can you please comment on the two following topics?
Question 1: Have there been changes to 14.04 and if so: when will the referenced article be available?
Question 2: Shouldn´t nginx also run with its own permissions? If so, does that require any tweaks to the above guide?
Question 3: Under which permission are the cron jobs executed following the above guide? If root, would it make sense to have cron jobs run under a different account? And if that is the case and assuming nginx also have its own permissions under which it is running, does that somehow require additional tweaks to you guide?
This doesn’t seem to work with a 512 MB droplet (i.e., I noticed a “cannot allocate virtual memory” error when running the ‘./letsencrypt-auto …’ command).
This error was followed shortly thereafter by an InsecurePlatformWarning https://urllib3.readthedocs.io/en/latest/security.html#insecureplatformwarning
…and then the command terminated in failure.
Thanks for the great tutorial.
I was able to install the certificate using the letsencrypt version in the 16.04 repos.
So, instead of cloning the git repo, I was able to just apt-get install letsencrypt
Consequently, all the ./letsencrypt commands become sudo letsencrypt
thank for sharing this. just implemented on my web server.
one thing will like to suggest is to include the “.ini” file.
takes me some googling to get this syntax out.
most people do not have GUI especially running inside a docker container and this will be helpful
# vi /opt/letsencrypt/LE_server01.example.com.ini
rsa-key-size = 2048
server = https://acme-v01.api.letsencrypt.org/directory
text = True
agree-tos = True
verbose = True
authenticator = webroot
email = username01@example.com
domains = server01.example.com
:wq!
# cd /opt/leteencrypt
# ./letsencrypt-auto certonly -c LE_server01.example.com.ini
After doing this I got this error when checking if there were any syntax errors.
nginx: [emerg] BIO_new_file("/etc/ssl/certs/dhparam.pem") failed (SSL: error:02001002:system library:fopen:No such file or directory:fopen('/etc/ssl/certs/dhparam.pem','r') error:2006D080:BIO routines:BIO_new_file:no such file) nginx: configuration file /etc/nginx/nginx.conf test failed
Then after that happened I closed Putty and reopened it, and suddenly I couldn’t connect anymore, making it so I couldn’t revert my changes. Help would be appreciated.
PS: Getting timed out gave me this error: Network error: Connection timed out This happened right after I had done this.
Thanks for this tutorial. Just a quick question. I generate my certif for my website and two subdomain. But I wasn’t able to setup my nginx blocks with ssl.
i tried to add a 301 to an other file like we did with this tutorial but I cannot add a other name than “default_server” to redirect the block to an other.
Here a snippet : mainWebServer
server {
listen 80;
listen [::]:80;
server_name gfelot.xyz www.gfelot.xyz;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl http2 default_server;
listen [::]:443 ssl http2 default_server;
include snippets/ssl-gfelot.xyz.conf;
include snippets/ssl-params.conf;
server_name gfelot.xyz;
[...]
transmissionWebServer
server {
listen 80;
listen [::]:80;
server_name dl.gfelot.xyz
access_log off;
error_log /var/log/nginx/dl.gfelot.xyz.log;
location / {
proxy_pass http://127.0.0.1:9091/web/;
proxy_set_header Connection "";
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_pass_header X-Transmission-Session-Id;
}
location /rpc {
proxy_pass http://127.0.0.1:9091/rpc;
proxy_set_header Connection "";
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_pass_header X-Transmission-Session-Id;
}
}
plexWebServer
upstream plex-upstream {
server localhost:32400;
}
server {
listen 80;
listen [::]:80;
server_name plex.gfelot.xyz;
location / {
if ($http_x_plex_device_name = '') {
rewrite ^/$ http://$http_host/web/index.html;
}
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_redirect off;
proxy_set_header Host $http_host;
proxy_pass http://plex-upstream;
}
}
Hi @manicas - great tutorial, but they’ve changed all the names and now it’s called Certbot; there’s also an nginx plugin now, too!
Hey guys ! If I want to add an other certif after setting everything up once for an other subdomain, do I have to
./letsencrypt-auto certonly -a webroot --webroot-path=/var/www/html -d example.com -d sub1.example.com -d sub2.example.com
or just
./letsencrypt-auto certonly -a webroot --webroot-path=/var/www/html -d sub2.example.com
Thanks !