ByteScope

Certificate Generator

自簽憑證、CSR 與瀏覽器內的本機 CA — 私鑰絕不離開你的電腦。

檔案不會離開你的瀏覽器 — 全部在本機處理。

私鑰由你瀏覽器的 WebCrypto 在本機生成,絕不離開此頁面 — 任何金鑰、憑證、通用名稱 (CN) 或 SAN 數值皆不會被傳送。支援離線運作;可斷網嘗試。

主體替代名稱 (SAN)
金鑰演算法

關於這個工具

填入 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 金鑰的處理方式完全相同 — 全部在你的瀏覽器中打包,不上傳任何東西。

常見問題

這和 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 的方式都一樣。