Linux配置https证书的方法:Nginx与Apache全攻略
对于运行在Linux服务器上的Web服务,正确配置SSL证书不仅能保护用户数据传输安全,还能提升搜索引擎排名、消除浏览器“不安全”警告。本文将系统讲解Linux配置https证书的完整方法,覆盖Nginx和Apache两大主流Web服务器,帮助大家顺利完成部署。
一、获取https证书的两种方式
1、商业https证书
适合企业官网、电商平台等需要身份展示和高级保障的场景。可以在安信证书选购,按CA要求完成域名/企业验证,即可下载证书文件包。常用的Linux兼容格式为:Nginx需要.pem证书和.key私钥;Apache需要域名证书.crt、中间证书.crt和私钥.key。安信证书提供免费的安装服务。
2、免费https证书(Let’s Encrypt)
适合个人博客、中小型网站。使用Certbot客户端可全自动申请、部署和续期。执行以下命令安装Certbot并获取证书(以Ubuntu+Nginx为例):
sudo apt install certbot python3-certbot-nginx
sudo certbot–nginx-d yourdomain.com-d www.yourdomain.com
Certbot会自动修改Nginx配置,开启https并设置证书路径,证书有效期90天,后续可通过certbot renew自动续期。

二、Nginx配置https证书
1、上传证书文件
将证书文件(.pem)和私钥文件(.key)上传到Linux服务器的安全目录,推荐路径:
/etc/ssl/certs/yourdomain.pem#证书文件(包含服务器证书和中间证书)
/etc/ssl/private/yourdomain.key#私钥文件
注意:私钥文件权限必须设置为600,防止被其他用户读取。
chmod 600/etc/ssl/private/yourdomain.key
2、修改Nginx配置文件
找到站点的server块配置(通常位于/etc/nginx/conf.d/或/etc/nginx/sites-available/),添加或修改以下https监听配置:
server{
listen 443 ssl http2;
server_name yourdomain.com www.yourdomain.com;
ssl_certificate/etc/ssl/certs/yourdomain.pem;
ssl_certificate_key/etc/ssl/private/yourdomain.key;
#推荐的安全协议与加密套件
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384;
ssl_prefer_server_ciphers on;
#其他站点配置…
root/var/www/html;
index index.html;
}
#HTTP自动跳转https(可选)
server{
listen 80;
server_name yourdomain.com www.yourdomain.com;
return 301 https://$host$request_uri;
}
关键参数说明:
ssl_certificate:指向包含完整证书链的PEM文件(可使用cat服务器证书.crt中间证书.crt>bundle.pem命令合并)。
ssl_certificate_key:指向私钥文件。
ssl_protocols:禁用老旧不安全的SSLv3/TLSv1.0/1.1,只保留TLSv1.2和v1.3。
3、测试并重载Nginx
sudo nginx-t#检查配置文件语法
sudo systemctl reload nginx#平滑重载服务
若输出syntax is ok和test is successful,表示配置https无误。
三、Apache配置https证书
1、准备证书文件
将证书和私钥上传到服务器,例如:
/etc/ssl/certs/yourdomain.crt#服务器证书
/etc/ssl/certs/yourdomain_chain.crt#中间证书链
/etc/ssl/private/yourdomain.key#私钥
同样确保私钥权限为600。
2、启用SSL模块和站点配置
在Debian/Ubuntu系统中:
sudo a2enmod ssl
sudo a2ensite default-ssl.conf#或您自定义的SSL虚拟主机配置文件
在RHEL/CentOS系统中,SSL模块通常已默认启用。
3、配置SSL虚拟主机
编辑SSL站点配置文件(例如/etc/apache2/sites-available/default-ssl.conf或/etc/httpd/conf.d/ssl.conf),修改为:
<VirtualHost*:443>
ServerName yourdomain.com
DocumentRoot/var/www/html
SSLEngine on
SSLCertificateFile/etc/ssl/certs/yourdomain.crt
SSLCertificateKeyFile/etc/ssl/private/yourdomain.key
SSLCertificateChainFile/etc/ssl/certs/yourdomain_chain.crt
#安全协议设置
SSLProtocol all-SSLv3-TLSv1-TLSv1.1
SSLCipherSuite HIGH:!aNULL:!MD5
</VirtualHost>
如果证书文件已包含完整链(如Let’s Encrypt的fullchain.pem),可以将SSLCertificateChainFile行注释掉,并将SSLCertificateFile指定为全链文件。
4、重启Apache
sudo apachectl configtest#检查语法
sudo systemctl restart apache2#或httpd
通过以上步骤,即可轻松完成Linux配置https证书,为网站提供了可靠的加密保护。定期检查证书有效期、关注安全协议更新,才能让https防护持续有效。
相关推荐:《SSL证书怎么配置到服务器上》







