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自动续期。

Linux配置https

 二、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证书怎么配置到服务器上

SSL证书品牌

相关文章

LAYOUT

SAMPLE COLOR

Please read our documentation file to know how to change colors as you want

BACKGROUND COLOR

BACKGROUND TEXTURE

// //