非80 433 PORT取得let's encrypt SSL,並用於nginx反向代理(以goog f847272e46ca48138bdd7a97f4defa88.md

非80/433 PORT取得let’s encrypt SSL,並用於nginx反向代理(以google domains+ubuntu+nginx+next cloud舉例)

1.需求:將next cloud網站使用https+nginx反向代理方式導到https://cloud.ko0730.com:9091,
因certbot使用http challenge必須使用標準PORT,若你網站服務開在非標準PORT就需使用DOMAIN的方式取得

先在google domains建立一筆對應的CNAME紀錄

blob-1673271244265

執行:certbot certonly --manual --preferred-challenge dns -d your.domain.nam

certbot certonly --manual --preferred-challenge dns -d cloud.ko0730.com

他會先要求紀錄IP 選Y

blob-1673271250168

接著他會要求將驗證資訊建立到Google domains上,請按照以下方式建立
blob

txt紀錄建立後按enter繼續,成功之後會看到以下畫面,到這邊成功取得SSL KEY
blob-1673271253507

nginx反向代理設定

這邊就按照一般的方式設定,先到/etc/nginx/conf.d建立一筆設定檔

vi /etc/nginx/conf.d/cloud.conf

寫入以下內容

server {
    listen  443   ;

    server_name   cloud.ko0730.com;
    client_max_body_size 1024M;
    #設定公私鑰存放目錄
    ssl on;#用https代理記得要寫這行
    ssl_certificate /etc/letsencrypt/live/cloud.ko0730.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/cloud.ko0730.com/privkey.pem;

    location / {
        proxy_pass http://10.0.4.xx:80xx;#實際要轉向的站台位置
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

最後重啟nginx: systemctl restart nginx,連至https://cloud.ko0730.com:9091
blob-1673271244333