Skip to main content
Nordlys logo, a drawing of two gray mountains with green northern lights in the background 陈迪の自留地

Back to all posts

为网站配置免费的域名证书

Published on by Chen Di · 2 min read

acme.sh 实现了ACME 协议,它不仅可以为您的域名从 Let’s Encrypt 生成免费的证书,而且通过配套的自动更新功能,能够为证书自动续期。

基于 CentOS 7

安装 acme.sh

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

打开 Godaddy

  • 打开Godaddy开发者平台
  • 打开API Keys
  • Create New API Key(创建新的API Key)

创建新的 API Key

  • 填写API Key的名称(可选)
  • 环境(Environment)选择产品(Production)
  • 保存生成的 Key 和 Secret

配置环境变量并生成证书

export GD_Key="gHzatxxxf8geRg7UGanJiaKyied2F"
export GD_Secret="RMuBD3tRixxxYDkGewPGY"
acme.sh --issue --dns dns_gd -d  picokkplus.com -d '*.picokkplus.com'

安装nginx

yum install nginx

将证书导出到 nginx 目录(证书会被定期renew)

mkdir /etc/nginx/cert

acme.sh --install-cert  -d picokkplus.com -d *.picokkplus.com --key-file /etc/nginx/cert/key.pem --fullchain-file /etc/nginx/cert/cert.pem

配置nginx

vim /etc/nginx/conf.d/picokkplus.conf

server {
    listen 80;
    server_name www.picokkplus.com picokkplus.com;
    return 301 https://$server_name$request_uri;
    root /data/html/picokkplus;
    index index.html index.php;
}

server {
    listen 443 ssl;
    server_name www.picokkplus.com picokkplus.com;
    ssl_certificate /etc/nginx/cert/cert.pem;
    #填写证书私钥文件绝对路径
    ssl_certificate_key /etc/nginx/cert/key.pem;
    ssl_session_cache shared:SSL:1m;
    ssl_session_timeout 5m;

    #自定义设置使用的TLS协议的类型以及加密套件(以下为配置示例,请您自行评估是否需要配置)
    # TLS协议版本越高,HTTPS通信的安全性越高,但是相较于低版本TLS协议,高版本TLS协议对浏览器的兼容性较差。
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
    ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;

    #表示优先使用服务端加密套件。默认开启
    ssl_prefer_server_ciphers on;
    #将所有HTTP请求通过rewrite指令重定向到HTTPS。

    client_max_body_size 500m;

    location / {
        root  /data/html/picokkplus;
        index  index.html index.htm;
   }
}

重载 Nginx

nginx -t
nginx -s reload