# 搭建微信小程序 HTTPS 服务器，只需三步

- 作者：知晓程序
- 发布时间：2017-01-24 18:30
- 原文：https://www.ifanr.com/minapp/779677

![featured-sec](https://s3.ifanr.com/wp-content/uploads/2017/01/Featured-sec.jpg)

**知晓程序注：**

微信小程序中，要求所有服务器通讯使用 HTTPS 协议的安全连接（即增加 SSL 加密）。

也就是说，除了按照小程序要求进行数据收发，还要为服务器配置加密证书。这就让不少小程序开发者非常头疼。

知晓程序（微信号 zxcx0101）今天为大家推荐这篇文章，可以帮助大家快速申请加密证书、配置 HTTPS 服务器，并尽快将小程序应用于生产环境中。

本篇文章以阿里云为例，展示证书申请、配置等。此方法也可举一反三，应用于其他云服务器中。

---

文 \| 一斤代码

在小程序的生产环境中，如果需要调用服务器的 REST API 或 WebSocket，服务器必须提供安全的链接地址。也就是说，服务器需要使用 SSL 加密数据。

因此，我们需要在服务器中配置 SSL 加密。

### 第一步：申请服务器与域名

许多云服务商的云服务器配置是弹性的，可以根据自己的需要来选择合理的配置，如果你是个初学者为了学习用的话，一开始选择最低配置就行了。

当然，如果你有业务需求，也可以选择更高配置的服务器。

![3407939-c1cfd30d959e9fc6](https://s3.ifanr.com/wp-content/uploads/2017/01/3407939-c1cfd30d959e9fc6.jpg)

小程序的网络访问必须使用白名单中的地址，这意味着我们需要一个域名，便于加入微信的域名白名单中。

你可以在云服务商直接提供的域名购买服务中购买域名，也可以到域名服务商购买。

### 第二步：申请证书

很多国内外机构都提供 CA 证书签发认证，国内的如沃通，国外的如 Symantec。**很多证书提供商的证书服务价格不菲**，根据证书的不同功能，价格也是相差很大，最便宜的也要好几百一年。

现在也有免费的证书可以使用，比如 Let’s Encrypt。阿里云上也提供了免费的证书，申请起来很方便，我们就来看看怎么申请阿里云里的免费证书。

从阿里云的页面顶部菜单「产品与服务」里面，找到「CA 证书服务」。

![3407939-e7c5007df8f498fa](https://s3.ifanr.com/wp-content/uploads/2017/01/3407939-e7c5007df8f498fa.jpg)

进入页面后，点击页面右上角的「购买证书」按钮，进入证书选择界面。

![3407939-cbbca0e607d257a2](https://s3.ifanr.com/wp-content/uploads/2017/01/3407939-cbbca0e607d257a2.jpg)

在这里，我们可以选择「免费型 DV SSL」证书。

需要注意的是，**申请一个这样的证书，只能对一个明细域名生效。**也就是说，如果你有几个子域名，你需要分别为它们申请不同的证书。

购买完成后，**可以在你购买的订单列表里点击「补全信息」，输入域名和个人信息等**，提交给签发机构审核。

审核完成后，你的邮箱里会收到一封配置指导邮件。之后，**你就可以在订单列表中下载到证书文件了。**

证书文件里包含了一些适合 Apache、Nginx、IIS 等不同 HTTP 服务器可用的证书，这些都可以用于配置服务器的 SSL 加密。

### 第三步：在服务器中配置证书

由于我在服务器上安装的是 CentOS 和 Nginx，所以以下指令都是以 CentOS 为例。

首先，通过 `yum` 安装 Nginx。

```
yum install nginx

```

接下来，把服务器证书上传到服务器上，并配置 `nginx.conf` 文件（在 `/etc/nginx` 目录下），使其支持 HTTPS 协议。

```
server {
  listen       443 ssl http2 default_server;
  listen       [::]:443 ssl http2 default_server;
  server_name  _;

  root         /usr/share/nginx/html;

  ssl on;
  ssl_certificate "xxxxxx.pem";  #你的证书文件中的pem文件
  ssl_certificate_key "xxxxxx.key"; #你的证书文件中的key文件
  ssl_session_timeout  5m;
  ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
  ssl_ciphers AESGCM:ALL:!DH:!EXPORT:!RC4:+HIGH:!MEDIUM:!LOW:!aNULL:!eNULL;
  ssl_prefer_server_ciphers on;

  include /etc/nginx/default.d/*.conf;

  location / {
  }
}
```

重启服务之后，服务器的 SSL 加密，就配置好了。接着，在解析服务的控制台中，为你的域名添加一条 A 解析记录，将你的域名指向你的服务器公网 IP 地址。大功告成！

接下来，你就可以在服务器中配置小程序数据交换模块了。当然，具体的配置根据不同的环境而有所不同，大家可以自行探索有关小程序的后端开发资料。

原文地址：http://www.jianshu.com/p/132eed84bc4f

**本文由知晓程序授权转载，关注微信号 zxcx0101，回复「1228」获得全网第一本《小程序入门指南》电子书。**

![new&#95;zx](https://s3.ifanr.com/wp-content/uploads/2017/01/new_zx-1.png)
