HTTP 403 Forbidden in Nginx and Apache: The Permission Checks I Actually Use

A 403 Forbidden response means the server understood the request but is refusing to allow it. That sounds straightforward, but the cause can sit in three very different layers: the web server configuration, the Linux filesystem permissions, or the application itself. That layered view matters because 403 is one of the easiest errors to “fix”

HTTP 403 Forbidden in Nginx and Apache: The Permission Checks I Actually Use Read Post »

Certificate Pinning: Risks, Trade-Offs, and What I Recommend Instead

Certificate pinning has always sounded more appealing than it behaves in production. The idea is attractive: instead of trusting any certificate that chains to a public CA in the system trust store, your client trusts one specific certificate or public key. That narrows the trust model and can reduce exposure to misissued certificates or a

Certificate Pinning: Risks, Trade-Offs, and What I Recommend Instead Read Post »

Wildcard Cert vs Multi-Domain (SAN) Certificates: Which One Do You Actually Need?

Both wildcard and SAN (Subject Alternative Name) certificates solve the same core problem — securing multiple domains or subdomains with one certificate. But they work differently and have different costs, limitations, and use cases. Picking the wrong type leads to either unnecessary expense or coverage gaps. What Wildcard Certificates Cover A wildcard certificate secures *.example.com

Wildcard Cert vs Multi-Domain (SAN) Certificates: Which One Do You Actually Need? Read Post »

Apache VirtualHost Configuration Guide: How I Keep Multi-Site Apache Setups Predictable

Apache VirtualHosts are one of those features that feel simple until you inherit a server with twelve site files, three half-finished redirects, one missing ServerName, and an SSL vhost that is somehow answering for the wrong domain. I have spent enough time on those systems that I no longer trust “it should match the right

Apache VirtualHost Configuration Guide: How I Keep Multi-Site Apache Setups Predictable Read Post »

Apache .htaccess Practical Guide: When I Use It, When I Avoid It, and What Usually Goes Wrong

.htaccess is one of those Apache features that refuses to die because it solves a real problem, especially on shared hosting and delegated environments. At the same time, it is responsible for a lot of messy rewrite rules, unnecessary per-request filesystem checks, and 500 errors caused by one bad line buried in a content directory.

Apache .htaccess Practical Guide: When I Use It, When I Avoid It, and What Usually Goes Wrong Read Post »

Scroll to Top