> ## Content Index
> Fetch the complete content index at: https://blog.anthea.day/llms.txt
> Use this file to discover other available public pages before exploring further.

# Nginx 從入門開始的網站架設 (3)：https 設定
- URL: https://blog.anthea.day/series-nginx-3/
- Published: 2022-07-02T15:05:30.000Z
- Updated: 2026-10-21T03:49:24.000Z
- Author: Anthea / 芫荽
- Tags: #Migrated-1792241843742, #Import 2026-10-17 12:57, Coding, Nginx 從入門開始的網站架設

> **Nginx 從入門開始的網站架設**  
> [*(1) - 基本設定*](https://medium.com/@anthea.wu14/web-nginx-%E5%BE%9E%E5%85%A5%E9%96%80%E9%96%8B%E5%A7%8B%E7%9A%84%E7%B6%B2%E7%AB%99%E6%9E%B6%E8%A8%AD-1-b1f06dfc451f?ref=blog.anthea.day)[*(2) - Proxy Server*](https://medium.com/@anthea.wu14/web-nginx-%E5%BE%9E%E5%85%A5%E9%96%80%E9%96%8B%E5%A7%8B%E7%9A%84%E7%B6%B2%E7%AB%99%E6%9E%B6%E8%A8%AD-2-2db8d9035685?ref=blog.anthea.day)

一般在 IIS 上啟用 https 的步驟很直覺，先匯出憑證要求，接著在收到憑證之後完成憑證要求，在站台上設定新的繫結，將 443 指定到申請的憑證上的域名即可。

但是，利用 IIS 去向中華電信所申請到的憑證格式為 `.cer`，在 Nginx 的官網中（如下圖），使用的卻是 `.crt` 格式，並且還多了一個一般流程中不會看到的 `.key`。而網路上的教學大多是直接使用 openssl 去生產憑證，對於已經有憑證的情況來說並沒有太大的幫助。

![](https://cdn-images-1.medium.com/max/800/1*gsCKTI7Wzb88atnhBPsN3Q.png)

Nginx 官方文件對於 https 設定的說明

---

### 在 Nginx 中使用 `cer` 來設定 https

可以在上面那張圖片中觀察到，有兩個地方的值是粗體的黑字：`ssl_certificate` 和 `ssl_certificate_key`，這兩個部分要放的就是憑證的檔案和憑證的私密金鑰。而在這裡會有兩個問題：

1. 如果是利用 IIS 去產生憑證要求所申請到的憑證，會沒有辦法直接得到私密金鑰，且 Nginx 要求是不能加密的檔案。
2. 申請所得到的憑證 cer 沒有辦法直接使用在 Nginx 上。

在看這些問題之前，要先了解一下 `cer` `pfx` `key` `crt` 這幾個檔案的用途和差別。

![](https://cdn-images-1.medium.com/max/800/1*9xMc8yz5cXXU2FG4ub3yTw.png)

參考網站：[https://blog.csdn.net/itworld123/article/details/115553346](https://blog.csdn.net/itworld123/article/details/115553346?ref=blog.anthea.day)

了解了這幾種不同的名詞之後，接下來就是要把我們手上有的 `cer` 憑證檔案轉換成 Nginx 可以接受的格式。

#### 匯出 `pfx` 檔案

第一個步驟，是要藉由 `cer` 來取得包含憑證證書和私鑰的 `pfx` 檔案。

1. `Windows + R` 開啟 **執行**，輸入 *mmc*
2. *檔案* *\> 新增或移除嵌入式管理單元*，拉到最底下找到 **憑證**，點選後點擊中間的新增，會跳出另外一個視窗，選擇 *電腦帳戶 > 本機電腦*，按下完成後視窗會回到 **嵌入式管理單元** 這一層，確定憑證有被移動到右邊的視窗後就可以按下確定。
3. 在憑證的目錄底下選擇 *個人>憑證*，如果有先在 IIS 完成憑證要求的話就可以看到原本匯入的憑證，沒有的話請先匯入。找到要匯出 `pfx` 檔案的憑證對他點選 *右鍵 > 所有工作 > 匯出*，選擇 **是，匯出私密金鑰**，點選兩次下一步進入 安全性 的頁面，輸入存取 `pfx` 時的密碼。下一步輸入檔名後按下儲存就可以得到 `pfx` 檔案了。

![](https://cdn-images-1.medium.com/max/800/1*127sX9NPvItSEJE7bEjt_g.png)

第二步驟說明圖

![](https://cdn-images-1.medium.com/max/800/1*P6HlU3FUBphd_ClqvgUiNw.png)

第三步驟說明

#### 轉成 `crt `檔案

有了 pfx 的下一步就是要轉換成 crt 和 key。轉換的方法很簡單，使用 openssl，輸入下面的指令，就可以得到這兩個檔案了：

```
# 輸出 crt 
openssl pkcs12 -in server.pfx -clcerts -nokeys -out server.crt
```

```
# 輸出 key 
openssl pkcs12 -in server.pfx -nocerts -nodes -out server.rsa
```

產出兩個檔案之後就可以進入 nginx.conf 的修改了：

修改好記得要 `nginx -s reload`，防火牆 443 port 的部分也要記得開。

---

> 參考資料：  
> [Nginx 中使用 PFX 格式的 SSL 证书](https://zhuanlan.zhihu.com/p/109225748?ref=blog.anthea.day)  
> [crt、pem、pfx、cer、key 作用及區別](https://blog.csdn.net/itworld123/article/details/115553346?ref=blog.anthea.day)