# Certificate Generator

> 在瀏覽器中產生自簽憑證、CSR 與可重複使用的本機 CA，用於 localhost HTTPS — 就像 mkcert 但不必安裝。金鑰以 WebCrypto 產生，絕不外流。

- URL: https://bytescope.dev/zh-Hant/certificate-generator/
- Locale: zh-Hant · Also: [en](https://bytescope.dev/en/certificate-generator.md) · [ja](https://bytescope.dev/ja/certificate-generator.md)
- Runs: 全部在你的瀏覽器裡跑，什麼都不會上傳。
- Requires: Any modern browser (Chrome, Edge, Firefox, Safari), desktop and mobile.
- Updated: 2026-09-08

## What it does

填入 common name、加上 SAN（網域與 IP）、選擇金鑰類型（RSA 2048/4096 或 ECDSA P-256）與有效期限，就能下載一張可直接使用的 PEM 憑證和私鑰。金鑰是由你瀏覽器的 WebCrypto 產生的 — 在密碼學上與 openssl 產出的等價 — 而且絕不離開你的裝置，這正是用架構解決了「把資料貼進其他線上產生器」的根本問題。

本機 CA 模式是把 mkcert 工作流程搬進瀏覽器的版本，也是這個工具存在的理由：產生一把個人 CA 一次，把它匯入你的系統信任儲存區（附引導步驟），之後就用它為 localhost 與內部開發網域簽發憑證 — 於是它簽發的每一張憑證，瀏覽器的憑證警告都會消失。把 CA 金鑰下載保存起來，下次再放回來，就能繼續用同一個 CA 簽發 — 不需要任何伺服器也能延續。

CSR 產生器也涵蓋真實 CA 的工作流程：金鑰對 + 憑證簽署請求，可直接送交給你的憑證授權機構。每次下載都附上對應的 nginx、Apache 與 Node.js 設定片段，讓憑證從產生到上線只要貼上一次就完成。

當你需要的是一個可直接匯入的單一檔案，而非各自獨立的 PEM 時，可以把憑證和它的金鑰打包成有密碼保護的 PKCS#12（.p12/.pfx） — 這正是 Windows、macOS Keychain、Java keytool 與負載平衡器所期待的格式。每一份自簽與本機 CA 的結果都提供一鍵打包（CA 憑證鏈會自動含入），你也可以貼上自己的 PEM 憑證與金鑰。打包預設採用現代的 AES-256-CBC（PBES2 + PBKDF2）與 SHA-256 完整性 MAC，並為較舊的匯入工具提供 3DES 選項，RSA 與 ECDSA 金鑰的處理方式完全相同 — 全部在你的瀏覽器中打包，不上傳任何東西。

## Limits

Does not issue publicly trusted certificates; it makes self-signed certificates and CSRs for development and internal use.

## FAQ

### 這和 mkcert 有什麼不同？

工作流程相同 — 建立一個本機 CA、信任它一次、為開發網域簽發憑證 — 但完全不用安裝任何東西：金鑰產生與 X.509 簽章都在你瀏覽器的 WebCrypto 上執行。mkcert 會自動完成信任儲存區的匯入；在這裡則改為依你的作業系統跟著一段簡短的引導步驟操作。

### 私鑰在哪裡產生？它會離開我的電腦嗎？

金鑰是由你瀏覽器的 WebCrypto API 在這個分頁的記憶體中產生的，只有在你按下下載時才會寫入磁碟。沒有任何東西被傳送出去 — 即使斷開網路，這個頁面也能運作，歡迎你自行驗證。

### 為什麼我的瀏覽器還是對我的自簽憑證發出警告？

一張單純的自簽憑證並非由你系統信任的任何機構簽發，所以出現警告是預期中的。這正是本機 CA 模式解決的問題：信任你的個人 CA 一次，之後它簽發的每一張憑證 — localhost、*.test 網域、區域網路 IP — 都會被接受，不再有警告。

### 我該用 RSA 還是 ECDSA？

開發用 ECDSA P-256：更小、更快，現代技術堆疊普遍支援。若你的環境中有某個舊元件要求 RSA 2048 才用它；RSA 4096 只在政策強制要求時才用（它明顯較慢）。

### 這些憑證可以用在正式環境嗎？

不行 — 正式環境需要來自公開受信任 CA 的憑證（Let's Encrypt 是免費的）。自簽與本機 CA 憑證是給開發、測試與內部工具用的，在那些場景它們正是最合適的工具。

### 我可以匯出 .p12 / .pfx 檔嗎？

可以。產生之後（或貼上你自己的 PEM 憑證與金鑰），設定一組密碼即可下載 PKCS#12 打包檔 — 這是 Windows、macOS Keychain、Java keytool 與大多數負載平衡器都能匯入的格式。預設採用現代的 AES-256-CBC（PBES2 + PBKDF2）與 SHA-256 完整性 MAC；並提供 3DES 選項以相容較舊的匯入工具。本機 CA 的葉憑證會自動含入其 CA 憑證鏈。私鑰在你的瀏覽器中打包，只有在下載時才會寫入磁碟。

### .p12 匯出對 ECDSA 金鑰也有效嗎？

有效 — RSA 與 ECDSA（EC）金鑰的打包方式完全相同。打包時金鑰是以不透明的 PKCS#8 位元組處理，因此沒有僅限 RSA 的限制；產生的 .p12 匯入 OpenSSL、Windows、Keychain 與 keytool 的方式都一樣。
