站点https化教程

来源:互联网 发布:约瑟夫环java 编辑:程序博客网 时间:2024/05/19 17:09

最近因为小程序发布需要接口https化的原因,不得不让自己的网站支持https。一些原理啥的我就不讲了,直接说下自己怎么做的吧

首先需要在阿里云去购买一个https证书,你可以点击这儿进行传送,免费版的不收钱,而且可以申请很多个,如果你有多个网站需要支持https的话。

这里写图片描述

购买之后,点击补充信息,并在接下来的页面填写完必要的信息。域名校验类型注意选择dns,并且勾选下方的复选框。

这里写图片描述

这里写图片描述

点击系统生成src,点击创建。这样申请https证书的请求就被创建了。
大概等个5分钟,阿里就会给出回复。一般情况下域名的txt解析都已经被自动添加上去了,如果提示未成功,那自己按照提示手动添加下吧。

这里写图片描述

创建成功之后我们就可以看到证书已签发,然后卸载证书到计算机本地,想要传到服务器,你可以通过sftp或者ftp,如果这些做不到就找一个存放资源的空间—比如七牛云空间,把pem和key文件传送去,复制他们的url,然后在命令行里输入

wget http://xxxxx.pem

这样你就获取到他们了。
在你的服务器上新建一个目录,把这些文件放在这个目录下

mkdir /var/sslmv xxx.pem /var/ssl/mv xxx.key /var/ssl/

接下来就是配置nginx了,不讲那么多了,直接贴代码了

########### website(使http可以访问) ##########  server {    listen       80;    # listen 443 default ssl;    server_name  api.andylistudio.com;    # rewrite ^(.*)$  https://$host$1 permanent;    location / {      proxy_pass http://localhost:3000/;      proxy_set_header   Host    $host;      proxy_set_header   X-Real-IP   $remote_addr;      proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;    }  }  server {    listen       80;    # listen 443 default ssl;    server_name  khdoc.andylistudio.com;    # rewrite ^(.*)$  https://$host$1 permanent;    location / {      proxy_pass http://localhost:8083/;      proxy_set_header   Host    $host;      proxy_set_header   X-Real-IP   $remote_addr;      proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;    }  }############ ssl(使https可以访问) ################server {    listen 443 ssl;    server_name api.andylistudio.com;    ssl on;    root html;    index index.html index.htm;    ssl_certificate   /var/ssl/api/api.pem;    ssl_certificate_key  /var/ssl/api/api.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 / {      proxy_pass http://localhost:3000/;      proxy_set_header   Host    $host;      proxy_set_header   X-Real-IP   $remote_addr;      proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;    }  }  server {    listen 443 ssl;    server_name khdoc.andylistudio.com;    ssl on;    root html;    index index.html index.htm;    ssl_certificate   /var/ssl/khdoc/khdoc.pem;    ssl_certificate_key  /var/ssl/khdoc/khdoc.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 / {      proxy_pass http://localhost:8083/;      proxy_set_header   Host    $host;      proxy_set_header   X-Real-IP   $remote_addr;      proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;    }  }

参考文档:
nginx 同一个IP上配置多个HTTPS主机
nginx使用ssl模块配置支持HTTPS访问

0 0
原创粉丝点击