阅读量:2
在CentOS上配置Nginx以使用SSL涉及几个步骤,包括获取SSL证书、配置Nginx以及重启Nginx服务。以下是一个基本的配置文件示例和解析:
1. 获取SSL证书
你可以从Let’s Encrypt免费获取SSL证书,或者购买一个商业证书。
使用Let’s Encrypt获取证书
sudo yum install certbot python2-certbot-nginx
sudo certbot --nginx -d yourdomain.com -d www.yourdomain.com
2. 配置Nginx
编辑Nginx配置文件,通常位于/etc/nginx/nginx.conf或/etc/nginx/conf.d/default.conf。
示例配置文件
server {
listen 80;
server_name yourdomain.com www.yourdomain.com;
# 重定向HTTP到HTTPS
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
server_name yourdomain.com www.yourdomain.com;
# SSL证书路径
ssl_certificate /etc/letsencrypt/live/yourdomain.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/yourdomain.com/privkey.pem;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers HIGH:!aNULL:!MD5;
# HSTS(可选)
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
# 根目录
root /var/www/html;
index index.html index.htm;
# 日志文件
access_log /var/log/nginx/yourdomain.com.access.log;
error_log /var/log/nginx/yourdomain.com.error.log;
# 静态文件缓存
location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ {
expires 30d;
add_header Cache-Control "public, no-transform";
}
# PHP处理(如果使用PHP-FPM)
location ~ \.php$ {
fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
fastcgi_index index.php;
include fastcgi.conf;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
}
# 其他配置...
}
配置文件解析
1. HTTP重定向到HTTPS
server {
listen 80;
server_name yourdomain.com www.yourdomain.com;
return 301 https://$host$request_uri;
}
这段配置将所有HTTP请求重定向到HTTPS。
2. HTTPS服务器块
server {
listen 443 ssl;
server_name yourdomain.com www.yourdomain.com;
ssl_certificate /etc/letsencrypt/live/yourdomain.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/yourdomain.com/privkey.pem;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers HIGH:!aNULL:!MD5;
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
root /var/www/html;
index index.html index.htm;
access_log /var/log/nginx/yourdomain.com.access.log;
error_log /var/log/nginx/yourdomain.com.error.log;
location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ {
expires 30d;
add_header Cache-Control "public, no-transform";
}
location ~ \.php$ {
fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
fastcgi_index index.php;
include fastcgi.conf;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
}
}
listen 443 ssl;:监听443端口并启用SSL。ssl_certificate和ssl_certificate_key:指定SSL证书和私钥的路径。ssl_protocols和ssl_ciphers:配置SSL协议和加密套件。add_header Strict-Transport-Security:启用HSTS(HTTP Strict Transport Security)。root和index:指定网站的根目录和默认索引文件。access_log和error_log:指定访问日志和错误日志的路径。location ~* \.(jpg|jpeg|png|gif|ico|css|js)$:配置静态文件的缓存策略。location ~ \.php$:配置PHP文件的FastCGI处理。
3. 重启Nginx服务
sudo systemctl restart nginx
通过以上步骤,你可以在CentOS上配置Nginx以使用SSL,并确保所有HTTP请求都重定向到HTTPS。
以上就是关于“nginx ssl centos配置文件解析”的相关介绍,筋斗云是国内较早的云主机应用的服务商,拥有10余年行业经验,提供丰富的云服务器、租用服务器等相关产品服务。云服务器资源弹性伸缩,主机vCPU、内存性能强悍、超高I/O速度、故障秒级恢复;电子化备案,提交快速,专业团队7×24小时服务支持!
简单好用、高性价比云服务器租用链接:https://www.jindouyun.cn/product/cvm