{%hackmd BJrTq20hE %} <style> .markdown-body:not(.next-editor) pre { padding: 16px; background-color: #333; } .markdown-body pre.flow-chart, .markdown-body pre.sequence-diagram, .markdown-body pre.graphviz, .markdown-body pre.mermaid, .markdown-body pre.abc { background-color: #d9edf7 !important;<!-mermaidbg-!> } .markdown-body { font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; padding-top: 40px; padding-bottom: 40px; max-width: 800px; <!-筆記寬度-!> overflow: visible !important; position: relative; } </style> ## 前言   開發API需要部屬在虛擬機,而前後端分離作業的情況,前端框架容易將http視為不安全的連結,因此會希望API能使用Https連線提高資料安全性及前端框架阻擋的問題 虛擬機部署 API SSL 憑證具重大的重要性: 1. **資料安全**:SSL 憑證能夠加密客戶端與伺服器之間的資料傳輸,這對於保護傳輸過程中的敏感資料(如用戶名稱、密碼、個人資料等)至關重要。這種加密確保了資料在互聯網上傳輸時不會被竊取或竄改。 2. **增強信任度**:使用 SSL 憑證的 API 會在瀏覽器地址欄顯示鎖形圖標,這表示該連接是安全的。這有助於增強用戶對您網站或應用程式的信任,尤其是在處理支付或其他敏感交易時。 3. **提高搜尋排名**:Google 等主要搜尋引擎傾向於對使用 SSL 憑證的網站給予更高的排名。這意味著部署 SSL 憑證可以幫助提高您網站的可見度和流量。 4. **符合規範要求**:許多行業規範和法規(如 PCI DSS)要求在處理敏感數據時必須使用 SSL 加密。因此,部署 SSL 憑證不僅是最佳實踐,有時甚至是法律要求。 5. **保護免於中間人攻擊**:SSL 憑證可以防止中間人攻擊,其中攻擊者可能試圖攔截或竄改數據。通過確保所有數據都是加密的,可以大幅降低這種攻擊的風險。 ## 申請 SSL 憑證   這邊選擇使用zeroSSL作為範例,因為它提供了3組免費90天的SSL憑證,適合用於中短期開發,一開始請先至 [https://zerossl.com/](https://zerossl.com/),註冊好帳號 1. 按下 New Certificat 按鈕  2. 輸入你想選擇的網域名稱,並選擇90天免費    3. 免費方案可以擁有3組SSL憑證,每一組90天免費使用  4. 選擇上傳檔案的驗證方式 建議使用目錄建立`.well-known/pki-validation/ 此路徑需要的資料夾`(通常會放置在發佈專案中) :::info **windows如何建立.well-known 資料夾?** 新增資料夾→命名`.well-known.`就能建立了 ::: 5. 將驗證用的檔案放到pki-validation目錄中→下一步   6. 驗證成功,就可以下載憑證了  7. 按下Download Certificate 解壓縮後裡面有三個檔案 * certificate.crt * private.key * ca_bundle.crt 由於虛擬機(Azure & AWS)我們選用Windows平台,所以系統認定的格式為 ## 憑證格式轉換 當我們要拿剛剛產生的憑證會發現所產生的憑證是 `.crt` 檔, 在虛擬機(Azure & AWS於Windows平台)只接受私密金鑰憑證 (`.pfx`) 和公開金鑰憑證 (`.cer`) 這兩種憑證,而兩者的差別在於,PFX 格式的憑證是包含有私鑰,CER 格式的憑證裡面只有公鑰沒有私鑰。 因此我們必須要進行憑證格式轉換,詳細你可以參考這篇[憑證格式轉換 \- 將 CRT 與 KEY 轉換 PFX](http://dog0416.blogspot.com/2017/08/opensslwindows-crt-key-pfx.html)操作,這裡只簡單列一下步驟: 1. 下載並安裝 [OpenSSL for Windows](http://gnuwin32.sourceforge.net/packages/openssl.htm) 2. 將 `.crt` 與 `.key` 檔案複製到 OpenSSL 的 bin 資料夾,預設路徑是 `C:\Program Files (x86)\GnuWin32\bin` 3. 用**系統管理員身分開啟命令提示字元 (command line)** 並輸入 `cd C:\Program Files (x86)\GnuWin32\bin` 4. 執行轉換指令,過程中會要輸入匯出密碼,請記住此密碼,稍後上傳 Azure Web App 時會用到 `openssl pkcs12 -export -inkey private.key -in certificate.crt -out Certificate_For_Azure.pfx` :::warning  在過程中會輸入兩次密碼進行驗證,但是cmd本身不會顯示任何字元,這是正常的,只需要打完確認即可 ::: 5. 完成! 按照上述操作,你可以在 `C:\Program Files (x86)\GnuWin32\bin` 找到 `Certificate_For_Azure.pfx` 私密金鑰憑證。  ## 匯入SSL憑證方法 1. 將轉換完成的憑證放到虛擬機並執行,Current User和Local Machine都可以,這邊選擇Current User  2. 選擇要匯入的憑證,這邊直接下一部即可  3. 這邊惠要求你輸入剛剛在SSL轉換時所輸入的密碼,輸入後直接下一步  5. 選擇憑證放置的資料夾,讓他自動即可  6. 匯入完成  ## 使用匯入的SSL憑證 1. 在IIS Manager中選擇自己的網頁,並點選右邊的Binding  2.點選Add新增Port,並選擇安裝的憑證,就可以了 
×
Sign in
Email
Password
Forgot password
or
Sign in via Google
Sign in via Facebook
Sign in via X(Twitter)
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
Continue with a different method
New to HackMD?
Sign up
By signing in, you agree to our
terms of service
.