section 1
环境
- centos
- nginx
- 阿里云
步骤
- 阿里云申请免费域名(一个域名申请一个证书,如resume.zirupay.com和images.zirupay.com每个域名申请一个证书)

- 下载证书

- 添加https的 TXT 解析记录(这步在阿里云有域名的直接点验证即可给域名添加以下解析记录)

将证书添加到nginx根目录cert下
// 查看nginx目录nginx -t
配置nginx对应ssl证书
section 2
配置域名为https
阿里云服务器 阿里云免费ssl证书 阿里云域名 阿里云域名解析
- 申请免费ssl证书
- 免费ssl证书只能关联一个域名不能使用通配符(例如www.zirupay.com这个域名的证书只能关联www.zirupay.com这个域名)
- 证书审核时填写www.zirupay.com
- 证书审核通过后下载证书,并把对应key和pem拷贝到相应的服务器文件夹下
- 修改对应www.zirupay.com域名的nginx配置文件,如www.zirupay.com就需要修改www.zirupay.com.conf配置,详细修改方式,阿里云上有说明
这样访问www.zirupay.com就必须使用https协议了
配置服务为https
- 按照如上操作后其实到www.zirupay.com这个域名的443端口就是采用https协议了,在上面基础上如何实现https的服务呢?
首先我们可以在服务器本机比如9527端口上启个http的服务,再使用nginx来代理这个127.0.0.1:9527的http服务,就可以实现https服务了。详细操作如下:
- nginx配置www.zirupay.com为https服务(详细看配置域名为https)
- 服务器本地启动一个9527端口上的http服务
- 使用nginx来将https://www.zirupay.com/api/*代理到http://127.0.0.1:9527本地服务下
- 这样当你访问
https://www.zirupay.com/api/searchWord/format3就可以调到http://127.0.0.1:9527/searchWord/format3服务了 - 当然也可以服务器对外暴露9527这个端口,服务本身就是一个https的服务。详细参考下面地址:
https://blog.csdn.net/ererfei/article/details/73875795
nginx将http强行重定向到https
- 当用户输入www.zirupay.com时默认使用的是http的协议,我们需要配置nginx将http重定向到https:
# http强制转httpsserver {listen 80;server_name www.zirupay.com;rewrite ^(.*) https://$server_name$1 permanent;}
- 这样当用户输入
www.zirupay.com,http://www.zirupay.com,https://www.zirupay.com都会访问到https://www.zirupay.com
