# Acme.sh 生成泛域名 SSL 证书

## 安装 Acme.sh 脚本

```
curl  https://get.acme.sh | sh
```

执行命令后，将会在 root 用户根目录下生成 `.acme.sh` 目录。



## DNS API 方式生成 SSL 证书

**步骤一，**获取 [DNSPod API Token](https://console.dnspod.cn/account/token/token)，然后使用以下命令把 API Token 增加到系统环境变量里面。

```
export DP_Id="ID"
export DP_Key="KEY"
```



**步骤二，**进入 `.acme.sh` 目录，使用邮箱注册账号

```
./acme.sh --register-account -m EMAIL
```



**步骤三，**开始生成 SSL 证书

```
./acme.sh --issue --dns dns_dp -d DOMAIN -d *.DOMAIN
```

生成好的 SSL 证书会放在 `.acme.sh` 目录下以域名为目录名的目录里面。

## 配置 SSL 证书到 Nginx

**步骤一，**将生成好的证书 COPY 到 Nginx 目录的 ssl 文件夹下，以便配置网站 SSL 证书。

```
acme.sh --install-cert -d example.com \
--key-file       /etc/nginx/ssl/key.pem  \
--fullchain-file /etc/nginx/ssl/cert.pem \
--reloadcmd     "service nginx force-reload"
```

**步骤二，**为网站进行 SSL 配置，并设置强制 HTTPS 访问。

```
server {
        listen 80;
        server_name example.com;

        rewrite ^(.*)$ https://${server_name}$1 permanent;
}

server {
        listen 443 ssl;
        server_name example.com;

        ssl_certificate /etc/nginx/ssl/longjie233.top/cert.pem;
        ssl_certificate_key /etc/nginx/ssl/longjie233.top/key.pem;
        ssl_session_timeout     5m;
        ssl_protocols           TLSv1 TLSv1.1 TLSv1.2;
        ssl_ciphers             ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
        ssl_prefer_server_ciphers       on;

}
```