You are not logged in.
Right. with wget -H http://www.realupnow.com I get that it connects on port 80, responds with redirect (301) to https, and then fails connection on port 443.
That is an indication that the ssl setup is wrong in some way. Perhaps you could show the log again, following your last entry.
Suggestions:
1. remove the commented listen line (line 10).
2. Restore root /var/www/realupnow.com;
3. lift up the listen 443 ssl; to be new line 10, and
4. remove the # managed by Certbot junk from all lines.
Having default_server or not doesn't matter with a single configuration.
Next, forget about ssl-params.conf and instead use /etc/letsencrypt/options-ssl-nginx.conf, which is a gift from certbot (and there's no harm in publicizing ssl_ciphers).
The question is why there is a complaint about it in the log; try with commenting out that line, and restart nginx.
Hmm nginx is running but not serving pages...
Where did those "managed by certbot" lines come from? That configuration file of post #89 is a bit different from the one you showed at post #57 and it confuses me... where did "default_server" comd from, and where did that ssl setup come from? And why is it "root /var/www" ? Is that really the right file? Did you (also:)) get tired yesterday?
The nginx log files are still in /var/log/nginx where it has error.log and access.log
Firstly, it appears nginx is not running.
Does pgrep -a nginx say that it is?
Did you check the error log?
mmm no the ssl-params.conf needs to be included outside of the location block... But it also seems you have at some time let certbot mess with the configuration and it has then given you a mix of stuff you may and may not want.
It's ok to use /etc/letsencrypt/options-ssl-nginx.conf instead of the currently non-existing /etc/nginx/snippets/ssl-params.conf although you of course will need to review that instead.
Just make sure to remove the "# managed by certbot" comment on that include line.
And in the future, do not ever, never, never run certbot with --nginx argument again as it will then want to mess with the configuration again. certbot might also have dropped a cron action (/etc/cron.d/certbot) to "do helpful things" that you may and might not want. That's another thing to review and clean up. (sometimes I wish that those "we must do it all" hats were much smaller)
Further certbot added stuff at the bottom of that service block, which amounts to enforcing a redirect response when the incoming request is not https. That's an ok function, but again I think you should remove the "# managed by certbot" comment.
So: what's in /etc/letsencrypt/options-ssl-nginx.conf ?
EDIT: I meant that file of course.
Looks fine.
The final hurdle is to configure the ssl function of nginx and that's virtually a new ocean of possibilities. Though it typically reduces down into having two files: /etc/ssl/certs/dhparam.pem and /etc/nginx/snippets/ssl-params.conf.
You might have those already.
Plus that the service configuration should includes the second, typically near the ssl_certificate directive.
include snippets/ssl-params.conf ;Ok; I had forgotten... you need to set up group access to live and archive:
# chmod g+rx /etc/letsencrypt/{live,archive}Hmm please show output of
# namei -om /etc/letsencrypt/live/realupnow.com/fullchain.pemIf you are logged in as root then you won't need sudo.
Something else is wrong.
Can you copy&paste actually command and error?
Right. The "#" prompt is normally the signal for commands that needs to be run as root.
Ah, my mistake. The user is www-data... so perhaps the full sequence should be:
# addgroup ssl-cert
# chgrp ssl-cert /etc/letsencrypt/{live,archive}
# adduser www-data ssl-certAnd then you may verify access by getting no complaints from:
# runuser -u www-data cat /etc/letsencrypt/live/realupnow.com/fullchain.pem > /dev/nullNext, the server block needs to include a couple of ssl directives, in particular ssl_certificate and ssl_certificate_key
with the full pathnames for the ssl certificate and key.
Your certificate and chain have been saved at:
/etc/letsencrypt/live/realupnow.com/fullchain.pem
Your key file has been saved at:
/etc/letsencrypt/live/realupnow.com/privkey.pem
Note now that nginx run as user www-data, and that it needs access to those files. If your setup includes group ssl-cert for /etc/letsencrypt/live and /etc/letsencrypt/archive then the easy step is to add nginx to that group:
# adduser nginx ssl-certand then you are almost there...
Yes, if it comforts you. I wouldn't
.
And yes, you need to change the nginx configuration accordingly.
(I would rather keep in mind that I've choosen my own root and adapt instructions where needed)
Next, according to the manual the listen directive should look like:
listen 443 ssl; and if you want it to include a "default_server" (which you don't
) then that should be mentioned before the ssl tag rather than after it.
Great. The ssl configuration can be merged with the plain http configration into a single "server {...}" block. That would bring the advantage of certainly sharing the "location {..}" blocks which are where you declare service the points.
But if you, as is customary nowawdays, primarily want to only provide https service, and hev the http service merely redirect to corresponding https service, then you would certainly have separate "server {..}" blocks.
It doesn't matter too much; some editors provide indentation and "block" support for files ending in .conf which could be an argument for renaming, but the name is not important; only that the link has to point to the actual file.
The pathnames used in sites-enabled/ have the additional significance that nginx will process them in alphabetical order, and if many, the first ono is taken as "the default service" if it needs that. Since you have only one there is no potential of confusion.
In short: it's up to you
but make sure the link is valid.
You seem to still want the local names in the DNS setup to include the base domain name, and you have now defined resolution for www.realupnow.com.realupnow.com
The record should only have www and not www.realupnow.com
The local name will get realupnow.com appended automagically.
To follow current sysadmin style, your nginx service configuration should be a main file /etc/nginx/sites-available/realupnow.conf and optionally a side file like /etc/nginx/snippets/ssl.conf, plus the link /etc/nginx/sites-enabled/realupnow.conf pointing to ../sites-available/realupnow.conf.
I don't see a direct need to change the main configuration in /etc/nginx/nginx.conf or /etc/nginx/nginx.conf.d/* but I might be wrong in that.
No. apparently certbot includes some bogus advice that might be useful for some apache2 setups but certainly not relevant for you. It's just that the certbot developers have had their "we must do it all" hats on and try to make the tool do much more than just preparing the certificate.
With "certonly --webroot" option you avoid that but obviously the program will still insist with bogus (though technically harmless) instructions.
You will need a certificate that includes both realupnow.com and www.realupnow.com so that's a new certificate; you don't want to keep the existing.
You still need to update your nginx configuration both so that it also services www.realupnow.com, and that it offers https access as well (to both domain names).
You may do the first by adding www.realupnow.com to the server_name directive (space separated).
The second, adding ssl, has a number of bits to it; perhaps the easiest is to search for that techrepublic howto ("setup ssl for nginx" might find it?) and pick knowledge from it.
Nope. It only declares the resolution for the domain itself, without local host.
If their web gui allows, you could declare a resolution for "*" to mean "any local domain" and that would include "ralph" as well as "www" as well as "thisisagoodplacetobe" etc. Usually though "*" does not include local domain names with "." in (which is fine here I guess).
Yes, or edit it so it says "www" instead of "realupnow.com" and then it will define the resolution for "www.realupnow.com" ![]()
You reported the setting
A Record realupnow.com 66.172.90.106 AutomaticThat setting is for a host with local name realupnow.com within your domain realupnow.com and it therefore defines the FQDN realupnow.com.realupnow.com.
Maybe you get confused by the fact that the local name looks the same as the domain name?
Or possibly a caching issue. Check the authoritative service with
dig realupnow.com @dns1.registrar-servers.comGreat.
Your dns setup defines 2 FQDN, namely realupnow.com (by the @ line), and realupnow.com.realupnow.com (by the other line).
As I understand it, you want to provide several services:
1. http://realupnow.com
2. http://www.realupnow.com
3. https://realupnow.com
4. https://www.realupnow.com
but don't really care for http://realupnow.com.realupnow.com, which is serviced now.
That means firstly that your DNS setup must define the resolution for www.realupnow.com
(and rather not for realupnow.com.realupnow.com)
Secondly nginx needs to accept two alternative server names, and it also should use both plain http on port 80 and http over ssl on port 443.
For the latter, you need to locate where certbot has put the ssl credentials (as I mentioned before) and add that to the nginx configuration. (I think www.techrepublic.com has a good article for that).
(Also, keep in mind that by convention, nginx runs as user www-data)