Skip to content

Support Custom Root Certificate #507

@NghiaTranUIT

Description

@NghiaTranUIT

Description

Acceptance Criteria

  • When there is no Root Certificate (default or custom), implement this UI
Image
  • If we generate a default Root Certificate in Certificate Menu -> Install for Windows -> Manual or Auto Tab -> It will show the default certificate in the Custom Root Certificate
Image
  • Delete button is disabled if it's a Default Certificate, but enable if it's a custom Root certificate
  • Able to import p12 (with passphrase) -> Decrypt p12 with password to PEM and Private Key and store in Proxyman Data Folder -> Custom Certificate Folder. Do not store user password
Image
  • Make sure it shows an error if the passphrase is wrong.

  • Able to import PEM / DER (This feature is not available on macOS). This view should be separated into components, we we can reuse it later for Server / Client Certificate

Image
  • After importing custom Root Certificate -> Verify that the UI displays

Logic

  • Maybe we should write new CustomCertificateService.ts to store and handle custom certificate (maybe we will use this class to store Client/Server customer certificate too)
  • All custom certificates should be stored in Proxyman Data Folder -> Custom Certificate Folder
  • Do not store user p12 passphare. We decrypt p12 file to PEM and Private Key.
  • Write a simple func to verify if it's a valid Root Certificate. Ping @NghiaTranUIT to get the idea. If it's invalid, still import it, but show warning yellow label on the UI to warning the user
  • ✅ IMPORTANT LOGIC: If Custom Root Certificate is provided -> We should clear all cache certificates (read ca.js) and know where it's store and we should clear all cache and delete old server certificate (which was issued by old Root Certificate)

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request✅ DoneTicket is resolved

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions