使用 Let’s Encrypt 及 Certbot 在 Debian 上的 Nginx 啟用 HTTPS

本篇文章所搭配環境為 Debian 9 + Nginx 並使用架構在 Let’s Encrypt 上的 Certbot 來啟用 HTTPS 。

 

找出各網域所對應的根目錄

先去 /etc/nginx/sites-enabled/default 這個檔案記錄下各子網域所對應的根目錄
例如我的像是這樣
dreambreakerx.com /usr/share/nginx/www
api.dreambreakerx.com /usr/share/nginx/api
blog.dreambreakerx.com /usr/share/nginx/blog

 

安裝 Certbot


apt-get install python-certbot-nginx -t stretch-backports

如果無錯誤請直接跳到設定 Certbot 那個步驟,若是出現
E: The value ‘stretch-backports’ is invalid for APT::Default-Release as such a release is not available in the sources
請按照 https://backports.debian.org/Instructions/
編輯 /etc/apt/sources.list 這個檔案新增這行
deb http://ftp.debian.org/debian stretch-backports main


pico /etc/apt/sources.list
apt-get update
apt-get install python-certbot-nginx -t stretch-backports

 

設定 Certbot


certbot --authenticator webroot --installer nginx

各項設定請參考下面,需要注意的是我輸入一個空格字元選擇所有的網域,以及最後我設定強制使用 https


Enter email address (used for urgent renewal and security notices) (Enter 'c' to
cancel): example@gmail.com

-------------------------------------------------------------------------------
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must
agree in order to register with the ACME server at
https://acme-v01.api.letsencrypt.org/directory
-------------------------------------------------------------------------------
(A)gree/(C)ancel: A

-------------------------------------------------------------------------------
Would you be willing to share your email address with the Electronic Frontier
Foundation, a founding partner of the Let's Encrypt project and the non-profit
organization that develops Certbot? We'd like to send you email about EFF and
our work to encrypt the web, protect its users and defend digital rights.
-------------------------------------------------------------------------------
(Y)es/(N)o: Y

Which names would you like to activate HTTPS for?
-------------------------------------------------------------------------------
1: dreambreakerx.com
2: api.dreambreakerx.com
3: blog.dreambreakerx.com
-------------------------------------------------------------------------------
Select the appropriate numbers separated by commas and/or spaces, or leave input
blank to select all options shown (Enter 'c' to cancel):

Input the webroot for dreambreakerx.com: (Enter 'c' to cancel): /usr/share/nginx/www

Select the webroot for api.dreambreakerx.com:
-------------------------------------------------------------------------------
1: Enter a new webroot
2: /usr/share/nginx/www
-------------------------------------------------------------------------------
Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 1
Input the webroot for api.dreambreakerx.com: (Enter 'c' to cancel): /usr/share/nginx/api

Select the webroot for blog.dreambreakerx.com:
-------------------------------------------------------------------------------
1: Enter a new webroot
2: /usr/share/nginx/api
3: /usr/share/nginx/www
-------------------------------------------------------------------------------
Select the appropriate number [1-3] then [enter] (press 'c' to cancel): 1
Input the webroot for blog.dreambreakerx.com: (Enter 'c' to cancel): /usr/share/nginx/blog

Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
-------------------------------------------------------------------------------
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you're confident your site works on HTTPS. You can undo this
change by editing your web server's configuration.
-------------------------------------------------------------------------------
Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 2

接著可以試試新網址,也試試舊網址有沒有轉址到 https

 

自動更新證書

更新時使用這句


certbot renew --dry-run

也可以加入 Cron Job ,讓它每個星期一早上3點30分自動執行


crontab -e
30 3 * * 1 certbot renew --dry-run

 

使用 Network Link Conditioner 在 iOS 實機與模擬器模擬伺服器無回應逾時或網路極慢的狀況

在製作一個需要連網的 App 時,常常會需要打 API 取得資料,所以我們一定會針對伺服器回傳的資料處理,但要是伺服器根本就無回應呢?這時我們就需要使用 Network Link Conditioner 這項工具模擬出不同的網路環境做處理。

 


實機設定

先從 設定 → 開發者 → Network Link Conditioner 進去。
選擇 profile ,這裡因為要模擬 timedout 的情況所以選擇 100% Loss 。
並且 Enable 設定為開啟,這樣整台 iOS 裝置都會受到影響。

Network Link Conditioner iOS

 


模擬器設定

由於模擬器的設定裡沒有 Network Link Conditioner ,必須透過電腦設定才行。
請依照 Xcode 版本下載對應的檔案,不然會沒有效果。
Xcode 8 以上請從這下載安裝。
Xcode 7 以下請從這下載安裝。

掛載 dmg 尋找 Network Link Conditioner.prefPane 並點兩下安裝重開機。
路徑是 Additional Tools/Hardware/Network Link Conditioner.prefPane 。
安裝成功會在系統偏好設定裡出現 Network Link Conditioner。

Network Link Conditioner Mac 1

Network Link Conditioner Mac 2

使用方法跟實機一樣就不多說了,也可用用 Very Bad Network 這個 profile 模擬網路超慢的情況,這個會影響到整台電腦與模擬器請小心使用。

 

在 UITableViewCell 中取得 UITableView 或 UIViewController

在 iOS 7 ~ iOS 10 , UITableViewCell 與 UITableView 中間多了一層 UITableViewWrapperView ,直到 iOS 11 又移除…

將以下兩段複製到繼承 UITableViewCell 的自定義 class 裡


weak var tableView: UITableView? {
// 在 iOS 7 ~ 10 中 ,UITableViewCell 的 superview 為 UITableViewWrapperView 而不是 UITableView
if #available(iOS 11, *) {
return self.superview as? UITableView
}else {
return self.superview?.superview as? UITableView
}
}

weak var viewController: UIViewController? {
return self.tableView?.delegate as? UIViewController
}

啟用 HiNet 中華電信 IPv6 上網服務

本教學主要適用於 HiNet 光世代用戶啟用 IPv6

從很久之前就有聽過 IPv6 這個詞,在電腦展時也有一直在宣導,那時我以為這是只要 ISP 那邊設定就好,所以沒去特別理解它。過了很久後才知道這是用戶端這邊也要設定,而且還需要自己向 ISP 申請才行, ISP 他們也沒特別推動。難怪 IPv6 出來這麼久,大部分用戶都還是只支援 IPv4 ,只有政府機關、學術機構以及架站的人早早就同時支援 IPv4 與 IPv6 了。

關於 IPv6 ,網路上有很多解釋了,最主要就是解決 IP 不夠分配的問題,加上現在又進入物聯網的時代 ,問題只會更加嚴重。根據 Google 的統計資訊,全世界只有 12.49 % 的用戶是 IPv6 ,台灣甚至只有 0.57% …

IPv6 有以下優點:
1. 更多的 IP
2. 優化網路效能 (不需要 NAT 以及封包改善)
3. 更好的安全性

 


首先 IPv6 需要 ISP 以及軟硬體都支援
ISP:跟 HiNet 線上申請即可 (目前只有光世代用戶可以申請)
硬體:數據機及網路分享器 (若數據機太舊會派人來更換,網路分享器只要登入管理介面看看有沒有 IPv6 相關設定就可確認)
軟體:作業系統本身支援或第三方軟體 (本教學不用安裝任何軟體)

先用這兩個網站測試 IPv6 的支援度如何
http://test-ipv6.com/
http://ipv6-test.com/

 


檢測完後會列出得分及需要改善的項目,截圖是啟用 IPv6 後的得分啦,如果很低分就跟著教學做設定吧。若第一個網站測出來結果是 9/10 ,只要設定作業系統內的 DNS 就會變成滿分囉!

 


ISP部分

先到中華電信網路客服中心的頁面提出申請

點選 “申請 IPv6”

 

填入電話號碼,如果真的不知道要填甚麼請看下一步的連結

 

連線資訊查詢
登入後此頁面右下方有一項叫做 “附掛號碼”
請複製填到上圖的”電(信)話號碼”欄位中

把基本資料填一填並送出

 

之後你會收到一封告知申請已完成的電子郵件
大約要2~3個工作日才會完成整個申請內容 (視情況可能會派人來換機器)

可以到這個頁面查看進度

點選 “網路客服中心申請紀錄”

 

點選”申請IPv6″
再點選”查詢聯單明細”

 

確定收到第二封說明完工的電子郵件再繼續下面的步驟

 


網路分享器部分

我是用硬體撥接,這樣系統就不用撥號了。

 

跟 IPv4 幾乎一樣的設定

 

IPv6 主要、次要 DNS 分別設定
2001:b000:168::1
2001:b000:168::2

 

IPv4 主要、次要 DNS 分別設定
168.95.1.1
168.95.192.1

 


作業系統部分

這邊是以 Windows 10 為例,但其實不同版本的界面都差不多,可以參考看看。

 

IPv6 主要、次要 DNS 分別設定
2001:b000:168::1
2001:b000:168::2

 

IPv4 主要、次要 DNS 分別設定
168.95.1.1
168.95.192.1

 

設定皆正常後你會看到 IPv4 與 IPv6 都連上網際網路了

 


最後再試試那兩個測試網站看看分數是否有提升吧~
有看到有人說某些網站的速度有變快、Youtube 緩衝時間變短、P2P下載更快之類的
可能就是該服務有多一條線給 IPv6 來跑
每個 IPv6 用戶少所以分得的頻寬比較多就好比當初 4G 剛開台的情況

使用 Interop Tools 將不支援 W10M 的機型升級到紅石

我從 10586.494 成功升到 14393.5
機型是台版 Nokia Lumia 920

請注意
目前微軟已經關閉不支援 W10M 的機型加入 Windows Insider 使用 Insider Release Preview 升級的方法
而且 RS1 正式上市後 Insider Release Preview 也會變成給 RS 用
也就是說 10586.X 將會變成絕響 到時候你只有三種選擇
1. 降級成 WP8.1
2. 硬上 W10M RS1
3. 留在 10586.X

本教學是使用第二種,一但升到 RS1 ,可能就沒辦法回到 10586.X 囉
與之前網路上的教學不一樣 這次是使用 Interop Tools
不用下載 WP8 SDK 步驟可能相較簡單


  1. 打開手機上的 開發人員模式

    設定 更新與安全性 開發人員專用 開發人員模式

  2. 下載 Interop Tools

    http://bit.ly/InteropTools
    作者 https://twitter.com/gus33000
    用電腦下載後解壓縮
    將 Dependencies 資料夾下的 appx 檔案 以及 InteropToolsApp_beta_1.7_0.0.157.0_arm.appxbundle 夾帶檔案寄給自己
    用手機開啟信箱下載安裝4個必要的 appx 檔案 最後再來安裝 appxbundle
    等待10秒後應用程式列表會出現 Interop Tools 我們要用它來修改機碼

  3. 設定 Interop Tools

    開啟 Interop Tools
    點選 INTEROP UNLOCK
    打開 Restore NDTK Svc (第4項 別選到x50) 重開機
    再打開 Interop/Cap Unlock (第1項) 以及 New Capability Engine unlock (第2項)

  4. 改機碼

    開啟 Interop Tools
    點選 REGISTRY BROWSER
    移動到以下路徑
    [HKEY_LOCAL_MACHINE\System\Platform\DeviceTargetingInfo]
    更改以下的值 大小寫有分別
    有兩項值的 前者為單卡 後者為雙卡

    PhoneManufacturer
    MicrosoftMDG

    PhoneManufacturerModelName
    RM-1085_11302
    RM-1116_11258

    PhoneModelName
    Lumia 950 XL
    Lumia 950 XL Dual SIM

    PhoneHardwareVariant
    RM-1085

    這時去 設定 系統 關於 看看 成功偽裝了~

  5. 下載安裝紅石版更新

    打開 Windows 測試人員
    設定為 快速通道
    重開機後檢查更新吧
    安裝後進到桌面這時背景可能還在安裝 APP 所以會頓以及發熱



後記

如果安裝後有選擇 恢復原廠設定 的朋友會發現以上的動作需要重做 而且系統也退出 Windows 測試人員計畫 了
Windows 測試人員 已經內建在系統中了 所以 App 可以刪除了
不知道是不是有 恢復原廠設定 的關係 掃視畫面 打不開 重新安裝 App 也一樣

若是上面的機碼無效 也可以試試以下的

Lumia 830

PhoneManufacturer: MicrosoftMDG
PhoneManufacturerModelName: RM-984_15184
PhoneModelName: Lumia 830
PhoneHardwareVariant: RM-984
BSPRelease: 0000
ConfigurationID: 1001_0253A1

Lumia 635

PhoneModelName: Lumia 635
PhoneManufacturer: MicrosoftMDG
PhoneManufacturerModelName: RM-974_1193
PhoneHardwareVariant: RM-974

解決 Steam 客戶端中文亂碼

只有靜態的 UI 文字及收藏庫是正常顯示
所有內嵌網頁含有中文就會亂碼
如何分辨是不是網頁 滑鼠右鍵有”檢視原始碼”這選項就是網頁了
收藏庫可能是串 API 而非網頁所以一切正常

如果用瀏覽器直接看 Steam 網頁也是正常顯示中文
只有 Steam 客戶端會顯示方塊字
最後發現真的是 Steam 客戶端網頁快取的問題

 

商店首頁

收藏庫

遊戲介紹頁

 


 

解決方法:

 

完全關閉 Steam 客戶端

 

按下 Win + R 鍵 (“執行”的快速鍵) 並輸入

C:\Users\%UserName%\AppData\Local\Steam

按下 Enter 鍵後刪除名為 “htmlcache” 的資料夾

 

再次按下 Win + R 鍵 並輸入

steam://flushconfig

按下 Enter 鍵後會詢問你是否要重置 Steam 的設定到預設值

按下”確定”並重新登入帳號應該就能解決了

儲存 Windows 焦點的鎖定畫面作為桌布用

Windows Spotlight 其實就是 Dashboard 的概念
Windows Spotlight 其實就是 Dashboard 的概念

 

目前 Windows 焦點 ( Windows Spotlight ) 還沒出在 Windows 10 Mobile 上
Windows 10 Mobile 與 Windows Phone 8.1 的使用者可以先用 Bing 桌布

 

打開 “本機” 並在上方網址列打上

C:\Users\%UserName%\AppData\Local\Packages\Microsoft.Windows.ContentDeliveryManager_cw5n1h2txyewy\LocalState\Assets

按下 Enter 鍵後你會看到一堆沒有副檔名的檔案

 

切換成大圖示模式成功找出我在鎖定畫面看到的那張圖
切換成大圖示模式成功找出我在鎖定畫面看到的那張圖

 

把檔案複製到其他地方並加上.jpg 這樣才能看到影像的資訊
把檔案複製到其他地方並加上.jpg 這樣才能看到影像的資訊

 

為什麼在未加上副檔名前只有一張有預覽縮圖,推測可能只是快取
每張圖都有橫式與直式,解析度都是 1080p,目前不像 Bing 有網站收集整理這些圖
曾經出現過古墓奇兵:崛起及小小兵,可能是和緩、低調、美觀、不帶名稱的廣告,你只能選擇開啟或關閉該功能

 

在 Windows 10 啟用 Telnet

從 Windows Vista 後就不再自動安裝 Telnet ,但你仍可以手動安裝。
有兩種方式可以做到,使用圖形化介面或是命令提示字元,擇一即可。
雖然本文是以 Windows 10 來舉例,但前幾個版本的操作模式差不多,依然可以試試。

 


圖形化介面

對左下的開始按鈕點擊滑鼠右鍵,並選擇 "程式和功能"
對左下的開始按鈕點擊滑鼠右鍵,並選擇 “程式和功能”

 

點擊左邊的 "開啟或關閉 Windows 功能"
點擊左邊的 “開啟或關閉 Windows 功能”

 

勾選 "Telnet 用戶端" ,按 "確定" 等待安裝
勾選 “Telnet 用戶端” ,按 “確定” 等待安裝

 

 


命令提示字元

對左下的開始按鈕點擊滑鼠右鍵,並選擇 "命令提示字元(系統管理員)"
對左下的開始按鈕點擊滑鼠右鍵,並選擇 “命令提示字元(系統管理員)”

 

輸入 dism /online /Enable-Feature /FeatureName:TelnetClient
輸入
dism /online /Enable-Feature /FeatureName:TelnetClient

 

Dropbox 同步指定資料夾外的檔案 ( Mac / Windows )

Dropbox 預設只能同步指定資料夾內的檔案與子資料夾,若要同步以外的地方,需要將捷徑或替身放進該資料夾內才行,可惜的是直接用滑鼠右鍵建立的捷徑或替身無法達到,只能靠以下指令完成。

若要將桌面上的 AAA 資料夾放進指定資料夾同步了話
請注意使用者帳號名稱、資料夾名稱以及來源資料夾目的資料夾的順序

 

Mac

終端機

ln -s /Users/Twister/Desktop/AAA /Users/Twister/Dropbox/AAA

來源資料夾 目的資料夾

 

Windows

命令提示字元 → 以系統管理員身分執行

mklink /d “C:\Users\Twister\Dropbox\AAA” “C:\Users\Twister\Desktop\AAA”

目的資料夾 來源資料夾