在CentOS系统上配置Nginx以支持SSL(Secure Sockets Layer)证书,可以确保通过HTTPS协议提供安全的数据传输。以下是详细的配置步骤和优化建议:
更新系统包:
sudo yum update -y
安装Nginx及其依赖:
sudo yum install -y gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel wget
下载并解压Nginx源码:
wget http://nginx.org/download/nginx-1.12.2.tar.gz
tar -zxvf nginx-1.12.2.tar.gz
cd nginx-1.12.2
./configure --prefix=/usr/local/nginx --user=www --group=www --with-http_stub_status_module --with-http_ssl_module
make && make install
使用Let’s Encrypt免费获取证书:
sudo yum install certbot python2-certbot-nginx
sudo certbot --nginx -d yourdomain.com -m youremail@example.com
或者,你可以生成自签名证书用于测试:
openssl req -newkey rsa:2048 -nodes -keyout /etc/ssl/private/nginx-selfsigned.key -x509 -days 365 -out /etc/ssl/certs/nginx-selfsigned.crt
创建目录并复制证书和私钥:
sudo mkdir -p /etc/nginx/cert
sudo cp /path/to/your_certificate.crt /etc/nginx/cert/
sudo cp /path/to/your_certificate.key /etc/nginx/cert/
打开Nginx配置文件,通常位于/etc/nginx/conf.d/ssl.conf
或/etc/nginx/nginx.conf
。
添加SSL配置:
server {
listen 443 ssl;
server_name yourdomain.com;
ssl_certificate /etc/nginx/cert/your_certificate.crt;
ssl_certificate_key /etc/nginx/cert/your_certificate.key;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 10m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
location / {
root html;
index index.html index.htm;
}
}
确保将yourdomain.com
替换为您的实际域名。
通过添加以下行来防止中间人攻击:
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
sudo nginx -t
来测试配置文件的正确性。如果一切正常,使用sudo systemctl restart nginx
重启Nginx以使更改生效。通过以上步骤,你可以在CentOS上成功配置Nginx的SSL证书,实现HTTPS协议的安全传输,并通过性能调优确保高效处理高并发请求。
亿速云提供多种品牌、不同类型SSL证书签发服务,包含:域名型、企业型、企业型专业版、增强型以及增强型专业版,单域名SSL证书300元/年起。点击查看>>
推荐阅读:centos nginxssl怎么配置