一、获取域名的密钥
我的域名都是阿里云的,所以在阿里云中申请ssl安全证书(腾讯云或者其他云操作基本相同)。以阿里云为例:
1.进入阿里云找到SSL证书

2.点击购买证书

3.选择版本(收费版或者免费版)

4.购买完成后会出现待申请的证书,点击申请填写对应信息


5.填写完成后需要将下列数据放在域名解析中进行验证(打开域名,点击解析将下述数据添加到里面,等待几分钟后点击验证)


6.认证完成,点击下载nginx证书并将证书上传服务器(觉得名字不好看可以改名称)



证书包含2个文件.key(证书的密钥文件名称).pem(证书的文件名称)上传服务器可以任意修改名称,不要修改后缀名就可以了。
二、配置nginx代理
1.打开443端口(默认https访问的端口)开启https的协议
#以下属性中以ssl开头的属性代表与证书配置有关,其他属性请根据自己的需要进行配置(引用阿里云)。
server {
listen 443; #配置HTTPS的默认访问端口号为443。Nginx 1.15.0以上版本请使用listen 443 ssl代替listen 443和ssl on。
server_name www.xxx.com; #将www.xxx.com修改为您证书绑定的域名。如果您购买的是通配符域名证书,要修改为通配符域名,例如:*.xxx.com。
ssl_certificate cert/xxx.pem; #将xxx.pem替换成您证书的文件名称。
ssl_certificate_key cert/xxx.key; #将xxx.key替换成您证书的密钥文件名称。
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4; #使用此加密套件。
ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #使用该协议进行配置。
ssl_prefer_server_ciphers on;
location / {
root html; #站点目录。
index index.html index.htm; #站点默认访问界面。
}
}
2.开启http访问自动跳转https。
server {
listen 80;
server_name www.xxx.com; #将www.xxx.com修改为您证书绑定的域名。
#告诉浏览器有效期内只准用 https 访问
add_header Strict-Transport-Security max-age=15768000;
#永久重定向到 https 站点
return 301 https://$server_name$request_uri;
}
重启nginx,这样无论是访问http://www.xxx.com还是访问https://www.xxx.com都会访问到https://www.xxx.com了。