SSL证书申请和Nginx配置


说明

证书,说白了就是加密http流量成为https加密流量的东西,从裸奔到铠甲合体。
一般证书分为信任机构或组织颁发的证书和自签名证书。
证书简单再分又有RSA和ECC加密格式
还有单域名回泛域名证书……
我们以acme.sh为例,申请一个泛域名证书
acme申请的证书后会自动创建一个crontab任务,每天检查证书有效期,到期会自动续签,所以申请和配置成功即完成

安装

1.具体安装方式可以查看其README,这里以在线安装为例
敲入curl https://get.acme.sh | sh -s email=my@example.com即可,稍后创建/root/.acme/文件夹,所有的操作步骤都在这里进行

2.设置域名服务商的DNS Keys(API Keys),如阿里云的Keys
具体其他域名服务商请看这里

3.得到Keys对后,输入如下,请注意替换,这里是阿里云为例!

export Ali_Key="sdfsdfsdfljlbjkljlkjsdfoiwje"
export Ali_Secret="jlsdflanljkljlfdsaklkjflsa"

4.接下来就简单了,直接执行如下,这里也是注意替换!

cd /root/.acme/
./acme.sh --issue --dns dns_ali -d yourdomain.com -d *.yourdomain.com

5.大概两分钟左右即可完成证书申请,结果如下图
完成图

6.copy证书到nginx的证书目录,假设我们这里是/var/www/ssl/,则我们输入如下命令,这里也是注意替换!
./acme.sh --install-cert -d yourdomain.com --cert-file /var/www/ssl/yourdomain.com.crt --key-file /var/www/ssl/yourdomain.com.pem --fullchain-file /var/www/ssl/yourdomain.com.fullchain.crt

7.证书会被copy到指定目录,这时候编辑nginx配置文件,如下一个二级域名的配置文件

server {
    listen 80;
    server_name release.yourdomain.com;
    location / {
        index  index.html;
        try_files  $uri $uri/ /index.html;
        return 301 https://$server_name$request_uri;
    }
}
server {
    listen 443 ssl;
    root /var/www/html/release/;
    index index.html index.htm index.nginx-debian.html;
    server_name release.yourdomain.com;

    ssl_certificate /var/www/ssl/yourdomain.com.fullchain.crt;
    ssl_certificate_key /var/www/ssl/yourdomain.com.pem;

    #enables all versions of TLS, but not SSLv2 or 3 which are weak and now deprecated.
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;

    #Disables all weak ciphers
    ssl_ciphers "ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4";
    ssl_prefer_server_ciphers on;
}

8.保存退出使用nginx -t测试无误后重启nginx即可


文章作者: 牛牛🐮
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 牛牛🐮 !
  目录