本文介绍了如何在Nginx服务器上配置SSL证书,进而完成HTTPS协议的访问配置,来确保网站的安全性和数据传输的加密。SSL证书是一种数字证书,用于验证网站的身份并建立安全的HTTPS连接。以下是配置SSL证书的关键步骤,以及如何对HTTP连接进行301重定向自动跳转到HTTPS连接。
一、获取SSL证书
首先,需要获得有效的SSL证书。付费证书或使用免费的证书均可。我是腾讯云的服务器,在SSL证书模块里,可以直接下载。
下载好的压缩包包含如下几个文件:
我们后面会用到的是.pem结尾的证书文件和对应的.key结尾的密钥文件。
二、存储证书文件
我们需要把证书文件保存在Nginx安装目录下,可以直接放到conf文件夹里面,我这里放到的是外面(下图的ssl文件夹)。
三、修改Nginx配置
我们需要在conf\nginx.conf里增加配置:
1、增加https端口监听
配置443端口监听来自域名damon-liu.work的访问,如果访问来自于damon-liu.work域名,则转发请求到8081端口的项目。
upstream damon{
server localhost:8081;
}
server {
#SSL 默认访问端口号为 443
listen 443 ssl;
#请填写绑定证书的域名
server_name damon-liu.work;
#请填写证书文件的相对路径或绝对路径
ssl_certificate ../ssl/damon/damon-liu.work_bundle.crt;
#请填写私钥文件的相对路径或绝对路径
ssl_certificate_key ../ssl/damon/damon-liu.work.key;
ssl_session_timeout 5m;
#请按照以下套件配置,配置加密套件,写法遵循 openssl 标准。
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
#请按照以下协议配置
ssl_protocols TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers on;
location / {
proxy_pass http://damon;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
2、实现http到https的自动跳转(可选)
配置非HTTPS协议的域名访问自动跳转到HTTPS协议下。HTTP协议的域名访问的是默认80端口,那我们为80端口创造监听,转发到HTTPS协议的访问路径。
server {
listen 80;
#请填写绑定证书的域名
server_name damon-liu.work;
#把http的域名请求转成https
return 301 https://damon-liu.work;
}
server {
listen 80;
#请填写绑定证书的域名
server_name www.damon-liu.work;
#把http的域名请求转成https
return 301 https://damon-liu.work;
}
server {
listen 443 ssl;
#请填写绑定证书的域名
server_name www.damon-liu.work;
#把http的域名请求转成https
return 301 https://damon-liu.work;
}
四、重启Nginx服务器,测试访问
浏览器输入http://damon-liu.work,看到自动变成https协议,并且转发到我们8081端口上的项目了。
Damon, Chinese, Liu Guangzhi, Software development engineer, CSDN quality creator, Ali Cloud expert blogger, Microsoft Technology Associate, Good at C#, Java, PHP, Python, etc, Love sports, Workaholic, Communist.