service service-name command
service nginx restart
nginx -t
What a ludicrous idea. That's not in any way what I'm suggesting.Pokrface":ks2970v5 said:Signaling that encryption is in place, without verifying that things are going to the intended recipient [...]
I'm guessing that was a typo, but it illustrates my point exactly: you don't have to. If I wanted to, say, phish Google+ users, I wouldn't sign my own Google cert. I'd just set up a HTTP server, put a regular ol' GIF lock icon on the page, and many people would fall for it. And the browser wouldn't raise any fuss.I can sign a cert saying that I'm http://www.google.com if I wanted to.
pancakesandbeyond":2th6mgat said:doornail":2th6mgat said:As Owdi mentioned, we're collapsing two separate problem domains. We have encryption based on open standards. Your browser supports it, my server supports it. The quality of this encryption does not suffer because I generated the certificate myself. Heck, I could argue it's higher because only *I* have a copy of it and it's never transmitted by whatever medium.
Authentication definitely has value -- but, IMHO, I think it makes an in-elegant conjoined twin.
hypothetically, Let's say I am a competitor, and I want to divert your customers underhandedly. I will set up a similar looking domain name and also provide a self signed cert. I will also send out suspect e-mails trying to trick people to come to my site.
On one hand, that would certainly do away with browser warnings, and at the same time wouldn't have the annoying side effect the current warning system has of conditioning users to blindly dismiss SSL errors like they do every other dialog box. I can also totally see the utility, especially for personal and/or internal web sites.I'm proposing that a self-signed cert would appear exactly the same way as a NON-SSL site.
It demonstrates that the weakest link is unencrypted sites. Assuming your 70% guess is correct, 30% of users do have a wrongheaded "expectation of privacy."brodie":3rvlx02u said:How does a phishing site's attempts have any bearing on people's awareness of SSL?portent":3rvlx02u said:I disagree with you (and cite every phishing site in my spambox as my evidence) but thank you for at least challenging my position without assuming I don't understand what CAs do.brodie":3rvlx02u said:Even my 86 year-old grandma knows how to look for the little lock in the corner.
So yes, there is a certain expectation of privacy if a connection is encrypted. If the connection is not verified, that expectation is not necessarily true, so it bears calling attention to it.
With HTTP, there is no expectation of privacy (or there shouldn't be), so there's no reason to call attention to it.
If they started sending out gopher:// links, it wouldn't mean that people would suddenly gain knowledge of what that protocol was.
How many hundreds of thousands, or millions, of those emails get sent out, and how many people buy into it? I would bet that at least 70% of people who even got fooled enough to click the link would check for the lock in the corner once the page loaded. Of course, that's entirely anecdotal, so that take that for what it's worth. (In that vein, my dad can't help but click links... it's almost a compulsion; but I've taught him to at least look up and see if it's protected before entering a password or anything sensitive).
Because there is nothing to raise a fuss about. The HTTP page is loading over an unsecure channel, so there is nothing to check/validate/raise a fuss about.Yet current browsers don't kick up any fuss when users visit unencrypted sites
Pokrface":ymxjpfnh said:A wildcard cert is actually crazy-useful--in addition to web sites, I'm also using my *.bigdinosaur.org cert for my firewall's web interface (so it doesn't throw SSL errors when I access it) and also for my domain's Openfire instant messaging server. Once you get a wildcard certificate, it starts being useful in all sorts of places.
Risk versus convenience. For the personal domain, it's three servers all together, including the firewall (which is a box running smoothwall linux, not a dinky soho nat router). The chroniclesofgeorge cert is only on the web server.Decade":zn3f8ixj said:That seems terrible.
So, you have (unencrypted copies of) your private key on your web server, and also on your IM server, and also on your firewall, and also on any other server on your domain. If any one of those programs or computers gets compromised, then you'd have to revoke the certificate and install new ones on all of those servers.
I'm especially wary of the firewall. I haven't seen a firewall device with an OS that I truly trusted, yet.
Right--you could, for example, set the ownership of the private key to root:certgroup, add the nginx user to the certgroup group, and then chmod the file to 640.Also, it seems to me that your Nginx configuration is missing something. What I want is for the Nginx server to have read-only access, and to have no ability to change the certificate file. In traditional Unix, it might be having the certificate and its directory owned by root and giving read-only access to a group of which Nginx is the only user. Or maybe there's a better solution involving ACL. I haven't played with this, so I'm not sure about the best way.
Daedalus207":1i5w7r9r said:@portent-
I believe I'm in agreement with what you are suggesting. It makes no sense to me either that a self-signed certificate should make a browser go nuts with end-of-the-world warnings, but unencrypted stuff is fine.
(...)
I personally see a great amount of value in self-signed certificates. Would I trust it for an e-commerce site or a bank? Absolutely not, in those cases, the third-party verification would be useful.
I see a third-party certificate as telling me, "A company who sells certificates verifies that the server at 192.168.1.1 is really foobar.com."
I see a self-signed certificate as telling me "The server at 192.168.1.1 claims to be foobar.com, and that matches your DNS records, so there's a good chance that it's legit."
No certificate at all says "I dunno. Good luck with that."
If you only need two you can do what I do. Get a certificate for sub.domain.com and use it for both domain.com and sub.domain.com. Of course www. wont work, but I dislike www. anyway.bartfat":2wcu66tg said:Aw, there doesn't seem to be an option for multiple subdomains for free SSL certificates. Unless I pony up some $50. As it is, this seems to be pretty limited, since you can't use the same SSL certificate with a home server and say, Bluehost together. They'd require separate sub-domains... and the Bluehost would take up the standard domain and the www one too.
EDIT: I guess the way around it is to use multiple certificates for separate sub-domains. I can see this getting unwieldy though with more than a few sub-domains...
If you reload instead of restart it'll test the conf files for you and instead of failing to load it'll fail, tell you, and continue to run with the current working conf files.rael9":2wcu66tg said:2) You should really check the configuration files' syntax before restarting NGINX. I find it's a good practice so that you can catch that error *before* you take down your site because of a typo or something. You can check it easily with:
Code:nginx -t
That's one of my problems with SSL. There's no network of trust. There's no Web of Trust like PGP, and there's no hierarchy of trust like DNS. There's only avaricious certificate authorities. You can't get a certificate that says, I'm the authority of my domain, now here's the signing key for the rest of the hosts in this domain. Likewise, you can't say: Comodo, you have failed me for the last time, be banished from my computer.gozar":5ojb88z1 said:What about being your own Certificate Authority?
Indeed. In my personal life, I don't follow the strictest security policies.Pokrface":4031qo5u said:Risk versus convenience.
Eh. I've read The Unix-Haters Handbook. I don't really think of Linux as being terribly secure. The whole Unix scene is so much better than when The Unix-Haters Handbook was written, but hardly a week goes by when LWN isn't posting a security advisory about the kernel. And it seems that Smoothwall gets updated only like once a year. Of course, many systems are much worse.Pokrface":4031qo5u said:The firewall (a box running smoothwall linux, not a dinky soho nat router).
Decade":14xk5qzv said:Eh. I've read The Unix-Haters Handbook. I don't really think of Linux as being terribly secure. The whole Unix scene is so much better than when The Unix-Haters Handbook was written, but hardly a week goes by when LWN isn't posting a security advisory about the kernel. And it seems that Smoothwall gets updated only like once a year. Of course, many systems are much worse.
Let me double-check and make sure I didn't mean for that to go in a separate directory, since conf.d should probably only be used for included config files.PietjePuk75":1quhkw5w said:Great series
There is a (consistent) error in this article (not in the previous one) wrt the /etc/nginx/conf directory, since it should be /etc/nginx/conf.d
Debian (and probably ubuntu too) uses conf.d directories a lot, therefor I jumped to the conclusion the conf dir was a typo.Pokrface":2r4547n7 said:I've altered the guide so that it includes the creation of an "ssl" directory beneath /etc/nginx, and the cert & key files get moved there. That keeps them out of conf.d, which is good practice.
On my system, I'm using /etc/ssl/cert and /etc/ssl/privateProbably the "best" way to do this would be to leverage /etc/ssl and /etc/ssl/private
Pokrface":2utoi4we said:Maybe I'm blind, but I'm not seeing it--is it in the code block with the two wget commands, or the next one with cat? I'm look at both in the Ars CMS and I'm not seeing any extra characters or anything.
You are exactly right! My impression was that the Nginx worker processes needed to be able to read the key, but after chowning the key to root and chmod'ing it to 400 to restrict access to all but the owner, SSL continues to work without issue.jgrmnprz":192bhsfz said:Thank you for this article.
I think you missed something about permissions on the private key file. This file shouldn't be readable by the nginx user but only by root.
I'm going to ask the nginx mailing list why this works, though. I suppose it's because the nginx master process is running at root privilege and it retrieves the key for the workers, but I don't know for certain.
Pokrface":1nvyyw3n said:1) Switch to a BSD-based firewall like m0n0wall, or its bigger & more configurable cousin, pfsense. I haven't done this because I like the interface simplicity of smoothwall, and I like how it makes setting packet filter rules and DNAT/SNAT rules into a single step instead of two separate operations.
Pokrface":1nvyyw3n said:2) Fork out a few hundred bucks for a small Cisco ASA5505 or its equivalent. It's questionable that the cost will balance the benefit for a home user, though, and every time I think of going down this road I always come up with something better to do with the cash.
Got my answer, from one of the core nginx devs on the mailing list:jgrmnprz":yi52gg1n said:I'm going to ask the nginx mailing list why this works, though. I suppose it's because the nginx master process is running at root privilege and it retrieves the key for the workers, but I don't know for certain.
Yep, I think this is the reason.
Worker processes doesn't read keys, but use keys already in memory
(read by the master process during reading/parsing the
configuration file, and inherited via fork() syscall, much like
all other configuration data).
skapegoat":2j4d3whg said:Could I potentially get a wildcard certificate for one of the domains I already own, and use it on both the webhost AND my webserver I'm throwing together at home based on this article? Eg. Register mydomain.com with my hosting company. Have it do its thing. Buy a *.mydomain.com certificate. have hosted.mydomain.com (and mydomain.com) use the cert, and also have home.mydomain.com use the same cert on my personal box?
Pokrface":2w9pklen said:That turns into a sticky issue, though. The ultimate purpose of encryption isn't to hash your data, but rather to ensure that it's not going to be read by anyone other than the intended recipient. Encryption without end-to-end authentication means that you're sending your scrambled bits to...someone. The connection may or may not have an eavesdropper; there might or might not be a man-in-the-middle.portent":2w9pklen said:I just think that it should not be treated as somehow more dangerous than an unencrypted, unauthenticated one. It's certainly not secure, but it's not any more dangerous than a "normal" non-SSL connection.
Ensuring you know who you're talking to is just as important as the actual scrambling of the data, and some kind of warning really is necessary.
I agree in principal--you're still saying that authentication is a fundamental component of encryption, which is my overriding point. It's the last sentence, though, that is the problem. Web browsers throw up the same scary warnings for self-signed certificates as they do for actual invalid or revoked certificates, and encouraging self-signed certs right now encourages user click-through of those warnings. A self-signed cert is likely legitimate, but making users blind to browser cert warnings leaves them unprotected about actual MITM attacks or other true maliciousness.WaggishWombat":z1uq7h3y said:TL;DR aka "my conclusion": it's ok to have CA-signed certificates, but we know that the system is fundamentally broken, and that the most promising way out is self-signed certificates + P2P validation, so please, Mr Hutchinson, do not discourage the use of self-signed certificates.
A self-signed certificate is better than no certificate at all. Hopefully, the web browser designers will update their user interface to acknowledge that reality.
It's separate things.Pokrface":1ukq224t said:I agree in principal--you're still saying that authentication is a fundamental component of encryption, which is my overriding point.WaggishWombat":1ukq224t said:TL;DR aka "my conclusion": it's ok to have CA-signed certificates, but we know that the system is fundamentally broken, and that the most promising way out is self-signed certificates + P2P validation, so please, Mr Hutchinson, do not discourage the use of self-signed certificates.
A self-signed certificate is better than no certificate at all. Hopefully, the web browser designers will update their user interface to acknowledge that reality.
Agreed, the solution to scary self-signed certificates warning is not to abandon self signed certificates (that would let us with no chance to get out of the CA mess) but to demand that web browser designers fix their shit.Pokrface":1ukq224t said:It's the last sentence, though, that is the problem. Web browsers throw up the same scary warnings for self-signed certificates as they do for actual invalid or revoked certificates, and encouraging self-signed certs right now encourages user click-through of those warnings. A self-signed cert is likely legitimate, but making users blind to browser cert warnings leaves them unprotected about actual MITM attacks or other true maliciousness.
So, as you say, to make self signed certs a valid option, browsers need to stop treating self signed certs as invalid and bad.