時間:2023-02-09 00:39:01 | 來源:建站知識
時間:2023-02-09 00:39:01 來源:建站知識
大學的時候買了 windliang.cc 的域名當做自己的博客,然后一直使用的是github
的 pages
服務。最近國內訪問 github
有些慢,想把博客遷移到阿里云的服務器上。nginx
成功放到阿里云上了,參考 云服務器搭建網(wǎng)站全過程。.cc
域名有一個最大的問題,現(xiàn)在不能備案了,不能備案的話就不能放到國內服務器上。于是前段時間又買了一個 windliang.wang 域名,備案成功后,按照之前的總結,很快就放到了阿里云上。.cc
域名的時候,重新定向到 .wang
域名上。js
進行重定向,另一種就是在后端通過 nginx
。.cc
域名沒有備案,所以我們需要在國外的服務器上放一個 html
來實現(xiàn)重定向。github
的 pages
服務。需要的index.html
寫法如下。<script> var domain = "windliang.wang"; //得到 https://windliang.cc/XXXXX var src = window.location.href; //得到 https var prtc = src.substring(0, src.indexOf(':')); //得到 /XXXXX //indexOf 的第二個參數(shù)是開始查找的位置 var target = src.substring(src.indexOf('/', src.indexOf(':') + 3)); //組合在一起 //https://windliang.wang/XXXXX window.location.href = prtc + "://" + domain + target;</script>
比較好理解,上邊也都注釋了。index.html
然后放到 github
倉庫里。Settings
里開啟 pages
服務,并且綁定我們的域名。DNS
里面添加一個 CNAME
記錄,將域名解析到 wind-liang.github.io
。windliang.cc
的任意地址,就會自動跳轉到 windliang.wang
了。nginx
方式的重定向。windliang.cc
的時候會有一個 404
的狀態(tài)碼,這里我也不知道是為什么,如果誰知道的話可以告訴我。Debian
。http
的重定向很簡單,只需要在 /etc/nginx/conf.d
文件夾下新建一個配置文件。vim /etc/nginx/conf.d/windliang.cc.conf
然后添加下邊的內容。server { listen 80; server_name windliang.cc; return 301 https://windliang.wang$request_uri;}
這樣的話就可以了。但因為監(jiān)聽的是 80
端口,所以只會對 http://windliang.cc
進行重定向,對于 https
的鏈接就無能為力了。windliang.cc
申請一個 SSL
證書,從而完成 https
的跳轉。Let's Encrypt由互聯(lián)網(wǎng)安全研究小組(縮寫ISRG)提供服務。主要贊助商包括電子前哨基金會、Mozilla基金會、Akamai以及思科。2015年4月9日,ISRG與Linux基金會宣布合作。[5]Certbot
用以實現(xiàn)新的數(shù)字證書認證機構的協(xié)議被稱為自動證書管理環(huán)境(ACME)。[6]GitHub上有這一規(guī)范的草案,[6][7]且提案的一個版本已作為一個Internet草案發(fā)布。[8]
Let's Encrypt宣稱這一過程將十分簡單、自動化并且免費。[9]
Certbot is a free, open source software tool for automatically using Let’s Encrypt certificates on manually-administrated websites to enable HTTPS.是一個可以幫我們自動獲取證書的軟件。我們可以在 官網(wǎng) 選擇自己的后端軟件以及操作系統(tǒng),它會列出我們需要操作的步驟。
Certbot is made by the Electronic Frontier Foundation (EFF), a 501(c)3 nonprofit based in San Francisco, CA, that defends digital privacy, free speech, and innovation.
Certbot
。sudo apt-get install certbot python-certbot-nginx
有兩種獲得證書的方式,一種是自動獲取證書并且配置 nginx
,一種是僅獲取證書。因為我的網(wǎng)站是在阿里云上,不在這個服務器上,所以我采用僅獲取證書的方式。CNAME
記錄刪除,添加一個 A
記錄,將域名指向當前服務器的 ip
。sudo certbot certonly --nginx
執(zhí)行過程中會讓你填郵箱,選擇域名,然后等幾秒鐘就生成成功了,記住最后輸出的證書的地址和密鑰的地址。vim /etc/nginx/conf.d/windliang.cc.conf
把 80
端口和 443
端口合在一起,然后將上邊保存的證書和密鑰地址填上。server { listen 80; listen 443 ssl; server_name windliang.cc; ssl_certificate /etc/letsencrypt/live/windliang.cc/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/windliang.cc/privkey.pem; ssl_session_timeout 5m; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE; ssl_prefer_server_ciphers on; # 將80端口的http請求 301 重定向到新域名 if ( $scheme = "http" ) { return 301 https://windliang.wang$request_uri; } # 將443端口的https請求 rewrite 重定向到新域名 location / { rewrite ^(.*)$ https://windliang.wang$1 permanent; }}
然后,就會發(fā)現(xiàn)可以得到 301
的狀態(tài)碼了。3
個月。但沒有關系,教程說如果通過上邊的步驟走的話,到期前它會自動幫我們更新。js
和后端通過 nginx
。nginx
做重定向的過程相當曲折了。因為一開始我只對 80
端口做了重定向,當我在瀏覽器輸入 windliang.cc
的時候,因為之前是通過 https
訪問的,所以瀏覽器會自動在前邊加上 https://
,所以導致一直不能成功跳轉。windliang.cc
不能跳轉了。nginx
的原因,各種看日志,重啟 nginx
,但始終沒找到問題,把 nginx
重裝了兩遍,甚至想把服務器重裝了,最最后,終于意識到了這個 https
的問題,才想到了上邊的解決方案。關鍵詞:實現(xiàn),通過
微信公眾號
版權所有? 億企邦 1997-2025 保留一切法律許可權利。