CentOS下安装nginx与SSL证书
针对 CentOS 系统,配置 SSL 证书在 Nginx 上的步骤:
1. 安装 Nginx 和 SSL 依赖
安装 EPEL 仓库(如果尚未安装)
sudo yum install epel-release -y
安装 Nginx
sudo yum install nginx -y
安装 OpenSSL(如果没有安装)
sudo yum install openssl -y
2. 上传 SSL 证书和私钥
假设你已经有了 SSL 证书文件(your_domain.crt)和私钥文件(your_domain.key),将它们上传到服务器。
例如,你可以将证书文件和私钥文件上传到 /etc/nginx/ssl/ 目录下:
sudo mkdir -p /etc/nginx/ssl
sudo cp your_domain.crt /etc/nginx/ssl/
sudo cp your_domain.key /etc/nginx/ssl/
确保文件权限正确,避免私钥文件泄露:
sudo chmod 600 /etc/nginx/ssl/your_domain.key
3. 配置 Nginx 使用 SSL
编辑 Nginx 配置文件
打开 Nginx 的默认配置文件(通常是 /etc/nginx/nginx.conf 或者 /etc/nginx/conf.d/default.conf,具体路径取决于你的 Nginx 配置):
sudo vi /etc/nginx/nginx.conf
配置 SSL 相关内容
在文件中添加或修改 server 块:
server {
listen 80;
server_name your_domain.com www.your_domain.com;
# Redirect HTTP to HTTPS
return 301 https://$host$request_uri;
}
server {
listen 443 ssl http2;
server_name your_domain.com www.your_domain.com;
# SSL certificate and key
ssl_certificate /etc/nginx/ssl/your_domain.crt;
ssl_certificate_key /etc/nginx/ssl/your_domain.key;
# Optional SSL settings for better security
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers 'TLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384';
ssl_prefer_server_ciphers on;
# Other configurations
root /usr/share/nginx/html;
index index.html index.htm;
# Location block for handling requests
location / {
try_files $uri $uri/ =404;
}
}
4. 测试和重载 Nginx 配置
配置完成后,先检查配置文件是否有语法错误:
sudo nginx -t
如果一切正常,重载 Nginx 服务使配置生效:
sudo systemctl reload nginx
如果nginx尚未启动则需要先启动nginx
sudo systemctl start nginx
查看nginx状态
sudo systemctl status nginx
5. 防火墙设置
确保防火墙允许 HTTPS 流量。如果你正在使用 firewalld,你可以使用以下命令:
sudo firewall-cmd --permanent --zone=public --add-service=https
sudo firewall-cmd --reload
如果你使用的是 iptables,需要手动允许 443 端口。
6. 验证 SSL 配置
打开浏览器,访问 https://your_domain.com 检查 SSL 是否成功启用。
其他Tips:
1.云服务器的防火墙都在控制台的防火墙配置规则,不需要在服务器中配置;
2.root和index可以在server块中配置,location会默认继承server块中的这个属性;location也可以配置root和index来覆盖server中的配置;
3.80端口配置了301永久重定向到https,后续的配置都在443里面配置就可以;
4.现在的网站都建议使用https,哪怕是静态资源也建议使用https,不要自己yy什么http开销更低之类的,虽然 HTTPS 会带来一定的性能开销,但现代的协议(如 HTTP/2 和 TLS 1.3)和硬件加速已显著减少这种差距。因此,性能影响不大,且通过 HTTPS 可以获得 HTTP/2 带来的性能提升。
5.配置完成后,如果你的域名也解析正常,应该是可以访问成功的,nginx自带有index.html。
6.分享记录一个好网站Dynamic Dummy Image Generator - DummyImage.com,平时用来做一些简单的占位图非常方便。
更多推荐



所有评论(0)