What SSL/TLS Certificates Actually Do
SSL (Secure Sockets Layer) and its successor TLS (Transport Layer Security) encrypt the connection between a user's browser and your server. Without HTTPS, data travels in plain text, allowing anyone on the network path (ISP, Wi-Fi operator, attacker on the same network) to intercept and read the traffic. HTTPS encrypts this data so that only the browser and server can read it.
The SSL/TLS certificate is a digital document that proves your server's identity. When a browser connects to https://example.com, the server presents its certificate. The browser verifies the certificate against a chain of trusted Certificate Authorities (CAs). If the certificate is valid, not expired, and issued to the correct domain, the browser establishes an encrypted connection and displays the padlock icon.
Google confirmed HTTPS as a ranking signal in 2014 and has progressively increased its weight. Chrome now marks HTTP sites as "Not Secure" in the address bar, warning users before they enter data. The combination of ranking benefits and user trust makes HTTPS mandatory for any site that collects information or wants to rank competitively.
How to Check SSL Certificate Status
Browser address bar: Click the padlock icon next to the URL. Chrome, Firefox, and Safari all display certificate details including the issuer, expiration date, and the domain it covers. Click "Connection is secure" then "Certificate is valid" to see the full certificate chain. Check the "Valid from" and "Valid to" dates to verify the certificate is current.
Online SSL checkers: SSL Labs (ssllabs.com/ssltest) provides the most comprehensive analysis. Enter your domain and it tests the certificate chain, protocol support, cipher suites, and overall grade (A+ through F). It also identifies vulnerabilities like Heartbleed, POODLE, and BEAST. Run this test quarterly to catch configuration issues before they become problems.
Command line verification: Use openssl to check certificate details from any terminal:
# Check certificate expiration date
echo | openssl s_client -servername example.com -connect example.com:443 2>/dev/null | openssl x509 -noout -dates
# Check certificate issuer and subject
echo | openssl s_client -servername example.com -connect example.com:443 2>/dev/null | openssl x509 -noout -subject -issuer
# Full certificate chain verification
openssl s_client -connect example.com:443 -showcerts < /dev/null 2>/dev/null | grep -E "Certificate chain|subject|issuer"
Set up a cron job to check certificate expiration weekly and alert you 30 days before expiry. Expired certificates trigger browser warnings that immediately destroy user trust and can cause search engines to deindex your site.
Certificate Types: DV, OV, and EV
Domain Validated (DV) certificates verify that you control the domain. The CA checks domain ownership through DNS record, HTTP file, or email verification. DV certificates are issued in minutes, cost nothing (Let's Encrypt) to $10/year, and display the padlock icon. They provide encryption but no identity verification. DV is sufficient for blogs, personal sites, and most small business sites.
Organization Validated (OV) certificates verify both domain control and organizational identity. The CA validates your business registration documents, confirming that a legitimate organization owns the domain. OV certificates display the organization name in certificate details and cost $50-200/year. They provide moderate trust for business sites where identity verification matters.
Extended Validation (EV) certificates require extensive identity verification including legal entity confirmation, physical address verification, and operational existence checks. EV certificates cost $200-1,000/year and historically displayed the organization name in the browser address bar (though modern browsers have removed this visual distinction). EV certificates are primarily used by financial institutions, healthcare providers, and large enterprises.
For most websites, a DV certificate from Let's Encrypt provides equivalent encryption to paid certificates. The padlock icon and HTTPS connection are identical. Choose DV unless your industry specifically requires OV or EV validation.
Mixed Content: HTTPS Pages with HTTP Resources
Mixed content occurs when an HTTPS page loads resources (images, scripts, stylesheets, fonts) over HTTP. The main page loads securely, but the insecure resources create vulnerabilities and trigger browser warnings. Active mixed content (scripts, iframes, CSS) is blocked by browsers entirely, breaking your page. Passive mixed content (images, video) loads but displays a warning icon.
Fix mixed content by updating all resource references to use HTTPS or protocol-relative URLs. Search your HTML source, CSS files, and JavaScript bundles for http:// references and replace them with https:// or relative paths. Content Security Policy headers can automatically upgrade HTTP requests to HTTPS:
Content-Security-Policy: upgrade-insecure-requests
Run a site-wide scan to find all mixed content instances. Our mixed content checker crawls your pages and identifies every insecure resource reference, categorizing them by severity and providing the exact file and line number where each HTTP reference occurs.
HSTS: Forcing HTTPS for All Future Requests
The HTTP Strict Transport Security (HSTS) header tells browsers to only connect to your site using HTTPS for a specified period. Once a browser receives the HSTS header, it automatically upgrades any HTTP request to HTTPS before even reaching your server. This prevents downgrade attacks where an attacker forces a user to connect over HTTP.
Strict-Transport-Security: max-age=31536000; includeSubDomains; preload
The max-age directive specifies how long (in seconds) the browser should enforce HTTPS. Set it to at least one year (31536000 seconds). The includeSubDomains directive extends HSTS to all subdomains. The preload directive allows your domain to be included in the HSTS preload list maintained by browsers, which enforces HTTPS even on the very first visit.
Before enabling HSTS preload, ensure every subdomain on your domain supports HTTPS. The preload list is difficult to remove from once submitted, and including a subdomain that does not support HTTPS will break access to that subdomain for all users on the preload list.
Let's Encrypt: Free Automated Certificates
Let's Encrypt provides free DV certificates through an automated protocol called ACME (Automatic Certificate Management Environment). Certificates are valid for 90 days and automatically renewed by client software. Every major hosting platform supports Let's Encrypt: cPanel, Plesk, Cloudflare, Netlify, Vercel, and most cloud providers.
For manual installation, use certbot: the official Let's Encrypt client. Install it on your server and run it with your domain name:
# Install certbot on Ubuntu/Debian
sudo apt install certbot python3-certbot-nginx
# Obtain and install certificate for Nginx
sudo certbot --nginx -d example.com -d www.example.com
# Verify auto-renewal is configured
sudo certbot renew --dry-run
Certbot automatically configures your web server, obtains the certificate, and sets up a cron job for renewal. The renewal process happens transparently with zero downtime. Monitor renewal logs to ensure certificates renew successfully before they expire.
Test your SSL configuration regularly with our SSL certificate checker. The tool verifies certificate validity, checks for mixed content, validates HSTS configuration, and confirms that your HTTPS implementation follows security best practices.