How do you install SSL certificates on a dedicated server?
Installing an SSL certificate on a dedicated server has evolved significantly. In 2026, the "manual" way of generating CSRs (Certificate Signing Requests) and waiting for emails is mostly reserved for high-level enterprise validation. For most websites, automation is the standard.
The process depends on your web server software, but the core steps remain the same.
This is the most popular method for Linux servers (Ubuntu, Debian, CentOS). Itβs free, trusted by all browsers, and renews itself automatically.
Install Certbot: This is the tool that talks to the Certificate Authority.
Run the Plugin: If you use Nginx or Apache, Certbot will automatically find your website configuration and inject the SSL code for you.
Command Example:
For Nginx: sudo certbot --nginx -d yourdomain.com
For Apache: sudo certbot --apache -d yourdomain.com
Verification: Certbot performs a "challenge" to prove you own the server and then downloads the .pem files to your machine.
If you bought a "PositiveSSL" or "EV Certificate" from a provider like DigiCert or Namecheap, you have to handle the files yourself.
You must create a "lock and key" pair on your server.
openssl req -new -newkey rsa:2048 -nodes -keyout yourdomain.key -out yourdomain.csr
Keep the .key file secret.
Send the .csr text to your SSL provider.
Once the provider verifies you, they will send you a .crt file (your certificate) and a bundle or ca-intermediate file. Upload these to a secure directory (e.g., /etc/ssl/certs/).
You need to tell your server where these files live.
For Nginx:
server {
listen 443 ssl;
server_name yourdomain.com;
ssl_certificate /etc/ssl/certs/yourdomain.crt;
ssl_certificate_key /etc/ssl/private/yourdomain.key;
ssl_trusted_certificate /etc/ssl/certs/ca-bundle.crt;
}
If you have a control panel installed, you don't need the command line:
Log in to cPanel/WHM or Plesk.
Look for "SSL/TLS Status" or "Let's Encrypt".
Click "Run AutoSSL" or "Install". The panel handles the file placement and web server restarts for you.
After installing, always verify the setup to ensure there are no "Mixed Content" errors:
Redirect HTTP to HTTPS: Ensure your config file forces all traffic to the secure version.
Check the Chain: Use a tool like SSL Labs to ensure your "Intermediate Certificates" are installed correctly (otherwise, Android phones might show a "Not Secure" warning).
Firewall: Ensure Port 443 is open on your server's firewall (ufw allow 443 or firewall-cmd --add-service=https).
Would you like me to walk you through the specific commands for your OS and web server (e.g., Ubuntu + Nginx)?