证书安装前准备:
1、下载好已经签发的SSL证书
2、将SSL证书文件上传到服务器上
3、证书文件以22cn.crt、中间证书以22cn_chain.crt、私钥以22cn.key命名为例
安装步骤
1、将已获取到的SSL证书文件上传到 Nginx 服务器的 /etc/nginx 目录(此处为 Nginx 默认安装目录,请根据实际情况操作)。
2、编辑 Nginx 根目录下的 nginx.conf 文件。修改内容如下:
如找不到以下内容,可以手动添加。可执行命令 nginx -t ,找到nginx的配置文件路径。
此操作可通过执行 vim /etc/nginx/nginx.conf 命令行编辑该文件。
由于版本问题,配置文件可能存在不同的写法。例如:Nginx 版本为 nginx/1.15.0 以上请使用 listen 443 ssl 代替 listen 443 和 ssl on。
证书名称以22cn为例,nginx.conf文件的修改内容如下:
server {
#SSL 默认访问端口号为 443
listen 443 ssl;
#请填写绑定证书的域名
server_name 22cn;
#请填写证书文件的相对路径或绝对路径
ssl_certificate 22cn_chain.crt;
#请填写私钥文件的相对路径或绝对路径
ssl_certificate_key 22cn.key;
ssl_session_timeout 5m;
#请按照以下协议配置
ssl_protocols TLSv1.2 TLSv1.3;
#请按照以下套件配置,配置加密套件,写法遵循 openssl 标准。
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE; ssl_prefer_server_ciphers on;
location / {
#网站主页路径。此路径仅供参考,具体请您按照实际目录操作。
#例如,您的网站主页在 Nginx 服务器的 /etc/www 目录下,则请修改 root 后面的 html 为 /etc/www。
root html; index index.html index.htm;
}
}
3、通过执行以下命令验证配置文件问题。
nginx -t
若存在,请您重新配置或者根据提示修改存在问题。
若不存在,请执行步骤4。
4、通过执行以下命令重载 Nginx。
nginx -s reload
5、重载成功,即可使用https://您的域名 进行访问。
自动跳转https的安全配置
如果需要将 HTTP 请求自动重定向到 HTTPS。请按照如下操作:
1、 根据实际需求,选择以下配置方式:
在页面中添加 JS 脚本。
在后端程序中添加重定向。
通过 Web 服务器实现跳转。
Nginx 支持 rewrite 功能。若您在编译时没有去掉 pcre,您可在 HTTP 的 server 中增加
return 301 https://$host$request_uri;
即可将默认80端口的请求重定向为 HTTPS。
修改如下内容:
由于版本问题,配置文件可能存在不同的写法。例如:Nginx 版本为 nginx/1.15.0 以上请使用 listen 443 ssl 代替 listen 443 和 ssl on。
server { #SSL 默认访问端口号为 443
listen 443 ssl;
#请填写绑定证书的域名
server_name 22cn;
#请填写证书文件的相对路径或绝对路径
ssl_certificate 22cn_chain.crt;
#请填写私钥文件的相对路径或绝对路径
ssl_certificate_key 22cn.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 / {
#网站主页路径。此路径仅供参考,具体请您按照实际目录操作。
#例如,您的网站主页在 Nginx 服务器的 /etc/www 目录下,则请修改 root 后面的 html 为 /etc/www。
root html;
index index.html index.htm;
}
}
server {
listen 80;
#请填写绑定证书的域名
server_name 22cn;
#把http的域名请求转成https
return 301 https://$host$request_uri;
}
2、通过执行以下命令验证配置文件问题。
nginx -t
若存在,请您重新配置或者根据提示修改存在问题。
若不存在,请执行步骤3。
3、通过执行以下命令重载 Nginx。
nginx -s reload