站點https化教程

最近因爲小程序發佈需要接口https化的原因,不得不讓自己的網站支持https。一些原理啥的我就不講了,直接說下自己怎麼做的吧

首先需要在阿里雲去購買一個https證書,你可以點擊這兒進行傳送,免費版的不收錢,而且可以申請很多個,如果你有多個網站需要支持https的話。

這裏寫圖片描述

購買之後,點擊補充信息,並在接下來的頁面填寫完必要的信息。域名校驗類型注意選擇dns,並且勾選下方的複選框。

這裏寫圖片描述

這裏寫圖片描述

點擊系統生成src,點擊創建。這樣申請https證書的請求就被創建了。
大概等個5分鐘,阿里就會給出回覆。一般情況下域名的txt解析都已經被自動添加上去了,如果提示未成功,那自己按照提示手動添加下吧。

這裏寫圖片描述

創建成功之後我們就可以看到證書已簽發,然後卸載證書到計算機本地,想要傳到服務器,你可以通過sftp或者ftp,如果這些做不到就找一個存放資源的空間—比如七牛雲空間,把pem和key文件傳送去,複製他們的url,然後在命令行裏輸入

wget http://xxxxx.pem

這樣你就獲取到他們了。
在你的服務器上新建一個目錄,把這些文件放在這個目錄下

mkdir /var/ssl
mv xxx.pem /var/ssl/
mv xxx.key /var/ssl/

接下來就是配置nginx了,不講那麼多了,直接貼代碼了

########### website(使http可以訪問) ##########
  server {
    listen       80;
    # listen 443 default ssl;
    server_name  api.andylistudio.com;
    # rewrite ^(.*)$  https://$host$1 permanent;
    location / {
      proxy_pass http://localhost:3000/;
      proxy_set_header   Host    $host;
      proxy_set_header   X-Real-IP   $remote_addr;
      proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
    }
  }
  server {
    listen       80;
    # listen 443 default ssl;
    server_name  khdoc.andylistudio.com;
    # rewrite ^(.*)$  https://$host$1 permanent;
    location / {
      proxy_pass http://localhost:8083/;
      proxy_set_header   Host    $host;
      proxy_set_header   X-Real-IP   $remote_addr;
      proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
    }
  }
############ ssl(使https可以訪問) ################
server {
    listen 443 ssl;
    server_name api.andylistudio.com;
    ssl on;
    root html;
    index index.html index.htm;
    ssl_certificate   /var/ssl/api/api.pem;
    ssl_certificate_key  /var/ssl/api/api.key;
    ssl_session_timeout 5m;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_prefer_server_ciphers on;
    location / {
      proxy_pass http://localhost:3000/;
      proxy_set_header   Host    $host;
      proxy_set_header   X-Real-IP   $remote_addr;
      proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
    }
  }
  server {
    listen 443 ssl;
    server_name khdoc.andylistudio.com;
    ssl on;
    root html;
    index index.html index.htm;
    ssl_certificate   /var/ssl/khdoc/khdoc.pem;
    ssl_certificate_key  /var/ssl/khdoc/khdoc.key;
    ssl_session_timeout 5m;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_prefer_server_ciphers on;
    location / {
      proxy_pass http://localhost:8083/;
      proxy_set_header   Host    $host;
      proxy_set_header   X-Real-IP   $remote_addr;
      proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
    }
  }

參考文檔:
nginx 同一個IP上配置多個HTTPS主機
nginx使用ssl模塊配置支持HTTPS訪問

發佈了59 篇原創文章 · 獲贊 80 · 訪問量 36萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章