mkcert เป็นเครื่องมือง่ายๆ สำหรับการสร้างใบรับรองการพัฒนาที่เชื่อถือได้ในเครื่อง ไม่ต้องมีการกำหนดค่า
$ mkcert -install Created a new local CA ? The local CA is now installed in the system trust store! ⚡️ The local CA is now installed in the Firefox trust store (requires browser restart)! ? $ mkcert example.com "*.example.com" example.test localhost 127.0.0.1 ::1 Created a new certificate valid for the following names - "example.com" - "*.example.com" - "example.test" - "localhost" - "127.0.0.1" - "::1" The certificate is at "./example.com+5.pem" and the key at "./example.com+5-key.pem" ✅
การใช้ใบรับรองจากหน่วยงานออกใบรับรองจริง (CA) เพื่อการพัฒนาอาจเป็นอันตรายหรือเป็นไปไม่ได้ (สำหรับโฮสต์เช่น example.test
, localhost
หรือ 127.0.0.1
) แต่ใบรับรองที่ลงนามด้วยตนเองทำให้เกิดข้อผิดพลาดในการเชื่อถือ การจัดการ CA ของคุณเองเป็นทางออกที่ดีที่สุด แต่โดยทั่วไปแล้วจะเกี่ยวข้องกับคำสั่งที่เป็นความลับ ความรู้เฉพาะทาง และขั้นตอนที่ต้องดำเนินการด้วยตนเอง
mkcert จะสร้างและติดตั้ง CA ภายในเครื่องในที่จัดเก็บรูทของระบบโดยอัตโนมัติ และสร้างใบรับรองที่เชื่อถือได้ในเครื่อง mkcert ไม่ได้กำหนดค่าเซิร์ฟเวอร์ให้ใช้ใบรับรองโดยอัตโนมัติ แต่ก็ขึ้นอยู่กับคุณ
คำเตือน : ไฟล์
rootCA-key.pem
ที่ mkcert สร้างขึ้นโดยอัตโนมัติให้พลังงานที่สมบูรณ์ในการสกัดกั้นคำขอที่ปลอดภัยจากเครื่องของคุณ อย่าแชร์มัน
บน macOS ให้ใช้ Homebrew
brew install mkcert brew install nss # if you use Firefox
หรือ MacPort
sudo port selfupdate sudo port install mkcert sudo port install nss # if you use Firefox
บน Linux ให้ติดตั้ง certutil
ก่อน
sudo apt install libnss3-tools -or- sudo yum install nss-tools -or- sudo pacman -S nss -or- sudo zypper install mozilla-nss-tools
จากนั้นคุณสามารถติดตั้งโดยใช้ Homebrew บน Linux
brew install mkcert
หรือสร้างจากแหล่งที่มา (ต้องใช้ Go 1.13+)
git clone https://github.com/FiloSottile/mkcert && cd mkcert go build -ldflags "-X main.Version=$(git describe --tags)"
หรือใช้ไบนารีที่สร้างไว้ล่วงหน้า
curl -JLO "https://dl.filippo.io/mkcert/latest?for=linux/amd64" chmod +x mkcert-v*-linux-amd64 sudo cp mkcert-v*-linux-amd64 /usr/local/bin/mkcert
สำหรับผู้ใช้ Arch Linux mkcert
มีอยู่ในที่เก็บ Arch Linux อย่างเป็นทางการ
sudo pacman -Syu mkcert
บน Windows ให้ใช้ Chocolatey
choco install mkcert
หรือใช้สกู๊ป
scoop bucket add extras scoop install mkcert
หรือสร้างจากแหล่งที่มา (ต้องใช้ Go 1.10+) หรือใช้ไบนารีที่สร้างไว้ล่วงหน้า
หากคุณประสบปัญหาในการอนุญาต ให้ลองเรียกใช้ mkcert
ในฐานะผู้ดูแลระบบ
mkcert รองรับร้านค้ารูทต่อไปนี้:
ที่จัดเก็บระบบ macOS
ที่จัดเก็บระบบวินโดวส์
เวอร์ชัน Linux ที่ให้อย่างใดอย่างหนึ่ง
update-ca-trust
(Fedora, RHEL, CentOS) หรือ
update-ca-certificates
(Ubuntu, Debian, OpenSUSE, SLES) หรือ
trust
(โค้ง)
Firefox (เฉพาะ macOS และ Linux เท่านั้น)
โครเมียมและโครเมียม
Java (เมื่อตั้งค่า JAVA_HOME
)
หากต้องการติดตั้ง CA หลักในเครื่องลงในชุดย่อยเท่านั้น คุณสามารถตั้งค่าตัวแปรสภาพแวดล้อม TRUST_STORES
เป็นรายการที่คั่นด้วยเครื่องหมายจุลภาค ตัวเลือกคือ: "system", "java" และ "nss" (รวมถึง Firefox)
-cert-file FILE, -key-file FILE, -p12-file FILE Customize the output paths. -client Generate a certificate for client authentication. -ecdsa Generate a certificate with an ECDSA key. -pkcs12 Generate a ".p12" PKCS #12 file, also know as a ".pfx" file, containing certificate and key for legacy applications. -csr CSR Generate a certificate based on the supplied CSR. Conflicts with all other flags and arguments except -install and -cert-file.
หมายเหตุ: คุณ ต้อง วางตัวเลือกเหล่านี้ไว้หน้ารายการชื่อโดเมน
mkcert -key-file key.pem -cert-file cert.pem example.com *.example.com
mkcert จะสร้างใบรับรอง S/MIME โดยอัตโนมัติหากชื่อใดชื่อหนึ่งที่ให้มาคือที่อยู่อีเมล
mkcert [email protected]
เพื่อให้ใบรับรองเชื่อถือได้บนอุปกรณ์เคลื่อนที่ คุณจะต้องติดตั้ง CA หลัก เป็นไฟล์ rootCA.pem
ในโฟลเดอร์ที่พิมพ์โดย mkcert -CAROOT
บน iOS คุณสามารถใช้ AirDrop ส่งอีเมล CA ถึงตัวคุณเอง หรือให้บริการจากเซิร์ฟเวอร์ HTTP หลังจากเปิดขึ้นมา คุณจะต้องติดตั้งโปรไฟล์ในการตั้งค่า > ดาวน์โหลดโปรไฟล์แล้ว จากนั้นเปิดใช้งานความน่าเชื่อถืออย่างเต็มที่
สำหรับ Android คุณจะต้องติดตั้ง CA จากนั้นเปิดใช้งานรูทผู้ใช้ในบิลด์การพัฒนาแอปของคุณ ดูคำตอบ StackOverflow นี้
โหนดไม่ได้ใช้ที่เก็บรูทของระบบ ดังนั้นจึงไม่ยอมรับใบรับรอง mkcert โดยอัตโนมัติ คุณจะต้องตั้งค่าตัวแปรสภาพแวดล้อม NODE_EXTRA_CA_CERTS
แทน
export NODE_EXTRA_CA_CERTS="$(mkcert -CAROOT)/rootCA.pem"
ใบรับรอง CA และคีย์ของใบรับรองจะถูกจัดเก็บไว้ในโฟลเดอร์ข้อมูลแอปพลิเคชันในบ้านของผู้ใช้ โดยปกติคุณไม่ต้องกังวลเกี่ยวกับเรื่องนี้ เนื่องจากการติดตั้งเป็นแบบอัตโนมัติ แต่ตำแหน่งจะพิมพ์โดย mkcert -CAROOT
หากคุณต้องการจัดการ CA แยกกัน คุณสามารถใช้ตัวแปรสภาพแวดล้อม $CAROOT
เพื่อตั้งค่าโฟลเดอร์ที่ mkcert จะวางและค้นหาไฟล์ CA ในเครื่อง
การติดตั้งใน trust store ไม่จำเป็นต้องใช้คีย์ CA ดังนั้นคุณจึงสามารถส่งออกใบรับรอง CA และใช้ mkcert เพื่อติดตั้งในเครื่องอื่นได้
ค้นหาไฟล์ rootCA.pem
ใน mkcert -CAROOT
คัดลอกไปยังเครื่องอื่น
ตั้งค่า $CAROOT
เป็นไดเร็กทอรีของมัน
เรียกใช้ mkcert -install
โปรดจำไว้ว่า mkcert มีไว้เพื่อวัตถุประสงค์ในการพัฒนา ไม่ใช่การใช้งานจริง ดังนั้นจึงไม่ควรใช้กับเครื่องของผู้ใช้ปลายทาง และคุณ ไม่ ควรส่งออกหรือแชร์ rootCA-key.pem