配置域名https,并支持http自动跳转到https

246 阅读2分钟

背景:作为前端开发人员,前端开发及生产部署都是我自己来维护的,由于项目要接入到其他平台,使用的iframe,拿不到cookie……后端研究,结果需要将http访问改为https。

配置流程:

1、Nginx签名证书配置,我参考的blog.csdn.net/xtkinglong/…

// 生成私钥 1024 / 2048,需要输入密码,密码保存
openssl genrsa -des3 -out server.key 1024

// 私钥生成公钥
openssl req -new -key server.key -out server.csr

// 生成解密的私钥key
openssl rsa -in server.key -out server.key.unsecure

// 签名:两种方法进行签名,通过私钥进行签名,输入密码;通过解密的私钥key签名,不输入密码  
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
或者
openssl x509 -req -days 365 -in server.csr -signkey server.key.unsecure -out server.crt

// 步骤中要输入域名、所在省市、单位名称等信息,正确填写就行
// 一定要备份好生成的私钥 公钥
// 这是测试环境使用的,并没有生成正式的,我们生产环境购买的证书,购买地址https://www.itrus.cn/product.html,根据客服要求提供签名,会返回你.pem等正式证书。 测试环境使用会提示不安全,购买后的不再提示,浏览器显示一把小锁。

// nginx配置,正式证书可以参考 https://www.itrus.cn/service_13.html
// /root/server.xxx等是文件存放路径,填写真实路径
server{
    listen   80 ssl;
    server_name  XXXX.com;

    ssl_certificate    /root/server.crt;
    ssl_certificate    /root/server.key.unsecure;
}

//配置完保存 
nginx -s reload

2、生成签名很简单,按步骤敲就行了,如果不知道nginx在哪里配,找后端人员。由于用户习惯了输入http的域名,如果让用户输入https,体验感不好,就需要解决输入http或者https都跳转到https。

很简单,就在nginx里面加一行代码即可,所加的每一行配置要正确,不然nginx就挂了。

error_page 497 https://$host:$server_port$uri$is_args$args;
// 配置完保存测试
nginx -s reload

这样就完成了,如果还是不成功,请留言哦!