Let's Encrypt泛域名SSL證書申請

操做系統:CentOS 7nginx

github:https://github.com/Neilpang/acme.sh
有中文說明:
https://github.com/Neilpang/acme.sh 很詳細.git

一:安裝acme.sh

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

安裝完成後的目錄在/root/.acme.sh/下面.
直接使用 cd /root/.acme.sh 命令 進入.acme.sh目錄.github

二:生成SSL證書.

生成證書直接須要認證域名的全部權.
有三種方式
1:在你域名的HTTP域名網站相應目錄下放置一個文件,而後通過這個文件進行認證
2:在相應的域名上增長一個TXT解析.
3:使用相應的域名解析商(DNS服務商)的APIapi

我使用的阿里雲的解析服務,看了一下,能夠支持.
直接使用第三種方式.具體支持的DNS見:
https://github.com/Neilpang/acme.sh/blob/master/dnsapi/README.md (英文的)bash

在acme.sh目錄下面有一個account.conf文件...增長Ali_Key和Ali_Secretf二個值....是阿里雲的密鑰.
命令行:dom

./acme.sh --issue --dns dns_ali --force -d abc.domain.com

--force 能夠在更新的時候直接使用.網站

生成成功會有提示...而且自動創建一個abc.domain.com的目錄.相關的證書文件保存在這個目錄下面..阿里雲

三:安裝到nginx

命令:url

./acme.sh --installcert -d abc.domain.com 
          --keypath /etc/nginx/ssl/abc.domain.com.key 
          --fullchainpath /etc/nginx/ssl/abc.domain.com.cer

命令運行成功,可在ls /etc/nginx/ssl,查看到相應的文件.spa

由於要更新多個域名 ...因此沒有直接從新nginx

四:nginx配置

修改/etc/nginx/nginx.conf文件

server {
        listen       443 ssl;
        server_name  abc.domain.com;

        ssl on;
        
        ssl_certificate      ssl/abc.domain.com.cer;
        ssl_certificate_key  ssl/abc.domain.com.key;

        location / {
            proxy_pass   http://127.0.0.1:8001;
        }
    }
    # 80端口直接轉到443 server { listen 80; server_name abc.domain.com; return 301 https://$server_name$request_uri; } 

能夠把相應的命令放到一個文件中...而後直接使用. Let's Encrypt 如今只有60天有效期...到期後須要續期.

相關文章
相關標籤/搜索