[GH-ISSUE #116] Support custom Certificate for Pining Certificate #112

Open
opened 2026-03-03 19:15:23 +03:00 by kerem · 20 comments
Owner

Originally created by @NghiaTranUIT on GitHub (Apr 12, 2019).
Original GitHub issue: https://github.com/ProxymanApp/Proxyman/issues/116

Originally assigned to: @NghiaTranUIT on GitHub.

🐶 Brief

It's crucial to support Custom SSL Certificate for the domain, which is supported by SSL-Pinning.

For instance, Toggl Desktop is using custom Certificate for SSL, so it's impossible to intercept data unless debugging in Debug version.

It's time to support it.

👑 Criteria

  • Able to select Custom Certificate for particular Domain or app
  • Able to intercept the HTTPS content from those requests.
Originally created by @NghiaTranUIT on GitHub (Apr 12, 2019). Original GitHub issue: https://github.com/ProxymanApp/Proxyman/issues/116 Originally assigned to: @NghiaTranUIT on GitHub. ## 🐶 Brief It's crucial to support Custom SSL Certificate for the domain, which is supported by SSL-Pinning. For instance, Toggl Desktop is using custom Certificate for SSL, so it's impossible to intercept data unless debugging in Debug version. It's time to support it. ## 👑 Criteria - [ ] Able to select Custom Certificate for particular Domain or app - [ ] Able to intercept the HTTPS content from those requests.
Author
Owner

@ptrkstr commented on GitHub (Apr 22, 2020):

Hi @NghiaTranUIT, did there happen to be any update on this?
I'm running into the use case where certificate pinning is implemented in an application and in order for testing to occur between multiple testers, we wish to distribute the same certificate between all instances of proxyman.

<!-- gh-comment-id:617594433 --> @ptrkstr commented on GitHub (Apr 22, 2020): Hi @NghiaTranUIT, did there happen to be any update on this? I'm running into the use case where certificate pinning is implemented in an application and in order for testing to occur between multiple testers, we wish to distribute the same certificate between all instances of proxyman.
Author
Owner

@NghiaTranUIT commented on GitHub (Apr 22, 2020):

Hey @patrickbdev I did a research but not sure how to implement this feature from last year. I will research again push this ticket forward and support it next releases soon 👍

<!-- gh-comment-id:617595204 --> @NghiaTranUIT commented on GitHub (Apr 22, 2020): Hey @patrickbdev I did a research but not sure how to implement this feature from last year. I will research again push this ticket forward and support it next releases soon 👍
Author
Owner

@ptrkstr commented on GitHub (Apr 23, 2020):

Another question @NghiaTranUIT , is the certificate unique per Proxyman installation or is it the same across?

<!-- gh-comment-id:618179914 --> @ptrkstr commented on GitHub (Apr 23, 2020): Another question @NghiaTranUIT , is the certificate unique per Proxyman installation or is it the same across?
Author
Owner

@NghiaTranUIT commented on GitHub (Apr 23, 2020):

If you mean the "Certificate" is Proxyman CA Certificate, it's a unique cert, which is locally generated in your machine

<!-- gh-comment-id:618180684 --> @NghiaTranUIT commented on GitHub (Apr 23, 2020): If you mean the "Certificate" is Proxyman CA Certificate, it's a unique cert, which is locally generated in your machine
Author
Owner

@NghiaTranUIT commented on GitHub (Jun 17, 2020):

Good news that I successfully set up local HTTPS with a self-signed certificate. It's the environment to test the Custome Certificate feature that I'm working on 🙌

One question @patrickbdev. What is the format of your certificate? PEM or P12?

<!-- gh-comment-id:645156384 --> @NghiaTranUIT commented on GitHub (Jun 17, 2020): Good news that I successfully set up local HTTPS with a self-signed certificate. It's the environment to test the Custome Certificate feature that I'm working on 🙌 One question @patrickbdev. What is the format of your certificate? PEM or P12?
Author
Owner

@ptrkstr commented on GitHub (Jun 17, 2020):

You legend @NghiaTranUIT !
P12 is what I tend to use.
I notice that Charles supports both:
image

<!-- gh-comment-id:645218636 --> @ptrkstr commented on GitHub (Jun 17, 2020): You legend @NghiaTranUIT ! P12 is what I tend to use. I notice that Charles supports both: <img width="704" alt="image" src="https://user-images.githubusercontent.com/11362913/84871760-4707e600-b0c4-11ea-954d-ae098b462cf9.png">
Author
Owner

@NghiaTranUIT commented on GitHub (Jun 17, 2020):

Just wondering: Which feature do you use? Server Cert or Client Cert or Root Cert 🤔

<!-- gh-comment-id:645219262 --> @NghiaTranUIT commented on GitHub (Jun 17, 2020): Just wondering: Which feature do you use? Server Cert or Client Cert or Root Cert 🤔
Author
Owner

@ptrkstr commented on GitHub (Jun 18, 2020):

Sorry for the late reply @NghiaTranUIT, I wasn't able to get it successfully working, but I believe the root certificate is what I need to change.
I guess whatever allows me to achieve this:

I'm running into the use case where certificate pinning is implemented in an application and in order for testing to occur between multiple testers, we wish to distribute the same certificate between all instances of proxyman.

<!-- gh-comment-id:646034720 --> @ptrkstr commented on GitHub (Jun 18, 2020): Sorry for the late reply @NghiaTranUIT, I wasn't able to get it successfully working, but I believe the root certificate is what I need to change. I guess whatever allows me to achieve this: >I'm running into the use case where certificate pinning is implemented in an application and in order for testing to occur between multiple testers, we wish to distribute the same certificate between all instances of proxyman.
Author
Owner

@NghiaTranUIT commented on GitHub (Jun 18, 2020):

I set up a local self-signed HTTPS server for testing the SSL-Pinning and I confirm that both Root Certificate and Server Certificate are working well as long as we have correct P12 or PEM files (private and cert) 👍

<!-- gh-comment-id:646036770 --> @NghiaTranUIT commented on GitHub (Jun 18, 2020): I set up a local self-signed HTTPS server for testing the SSL-Pinning and I confirm that both Root Certificate and Server Certificate are working well as long as we have correct P12 or PEM files (private and cert) 👍
Author
Owner

@ptrkstr commented on GitHub (Jun 18, 2020):

That’s great @NghiaTranUIT, I appreciate the effort!

<!-- gh-comment-id:646349466 --> @ptrkstr commented on GitHub (Jun 18, 2020): That’s great @NghiaTranUIT, I appreciate the effort!
Author
Owner

@NghiaTranUIT commented on GitHub (Jun 26, 2020):

Hey @patrickbdev @joanbono, @tobiastom, and @finnsch , here is the good news 🎉

Let check out this BETA build of Custom Certificate:

  • Server Certificate for SSL-Pinning app
  • Client Certificate for Mutual Authentication
  • 🍎 Accept PEM, DER and P12 certificates
Screen Shot 2020-06-26 at 10 54 38

Download: https://proxyman.s3.us-east-2.amazonaws.com/beta/Proxyman_2.0.1_Custom_Certificate_v2.dmg
Doc: https://docs.proxyman.io/advanced-features/custom-certificates

<!-- gh-comment-id:649994935 --> @NghiaTranUIT commented on GitHub (Jun 26, 2020): Hey @patrickbdev @joanbono, @tobiastom, and @finnsch , here is the good news 🎉 Let check out this BETA build of Custom Certificate: - ✅ Server Certificate for SSL-Pinning app - ✅ Client Certificate for Mutual Authentication - 🍎 Accept PEM, DER and P12 certificates <img width="816" alt="Screen Shot 2020-06-26 at 10 54 38" src="https://user-images.githubusercontent.com/5878421/85826535-f3298b00-b7ae-11ea-8892-cdbaafe07990.png"> **Download**: https://proxyman.s3.us-east-2.amazonaws.com/beta/Proxyman_2.0.1_Custom_Certificate_v2.dmg **Doc**: https://docs.proxyman.io/advanced-features/custom-certificates
Author
Owner

@NghiaTranUIT commented on GitHub (Jun 28, 2020):

Just friendly reminder @patrickbdev @joanbono, @tobiastom, and @finnsch that Proxyman 2.1.0 is released with this feature 👍

Let check it out: https://github.com/ProxymanApp/Proxyman/releases/tag/2.1.0

<!-- gh-comment-id:650764078 --> @NghiaTranUIT commented on GitHub (Jun 28, 2020): Just friendly reminder @patrickbdev @joanbono, @tobiastom, and @finnsch that Proxyman 2.1.0 is released with this feature 👍 Let check it out: https://github.com/ProxymanApp/Proxyman/releases/tag/2.1.0
Author
Owner

@zhangjs commented on GitHub (Mar 2, 2022):

Can proxyman use the corresponding server certificate based on the domain name?

<!-- gh-comment-id:1056024358 --> @zhangjs commented on GitHub (Mar 2, 2022): Can proxyman use the corresponding server certificate based on the domain name?
Author
Owner

@NghiaTranUIT commented on GitHub (Mar 2, 2022):

Hey @zhangjs at the moment, if you provide a Custom Server Certificate, it will use it for all domain names. If you use the Custom Client Certificate, it will support a domain in the Common Name attribute 👍

<!-- gh-comment-id:1056025518 --> @NghiaTranUIT commented on GitHub (Mar 2, 2022): Hey @zhangjs at the moment, if you provide a Custom Server Certificate, it will use it for all domain names. If you use the Custom Client Certificate, it will support a domain in the Common Name attribute 👍
Author
Owner

@zhangjs commented on GitHub (Mar 2, 2022):

I added the correct server certificates for the domain names, but not the root ca, and it prompts the error "The operation couldn’t be completed. (Could not generate dynamic certificate from :443 error 999.) (code=999)"

<!-- gh-comment-id:1056026474 --> @zhangjs commented on GitHub (Mar 2, 2022): I added the correct server certificates for the domain names, but not the root ca, and it prompts the error "The operation couldn’t be completed. (Could not generate dynamic certificate from <domain>:443 error 999.) (code=999)"
Author
Owner

@NghiaTranUIT commented on GitHub (Mar 2, 2022):

Have you added your custom certificate to Keychain access and trust it?

You can check out this section: 7. Import as a Custom Root Certificate at https://docs.proxyman.io/advanced-features/custom-certificates#7.-import-as-a-custom-root-certificate

<!-- gh-comment-id:1056027279 --> @NghiaTranUIT commented on GitHub (Mar 2, 2022): Have you added your custom certificate to Keychain access and trust it? You can check out this section: 7. Import as a Custom Root Certificate at https://docs.proxyman.io/advanced-features/custom-certificates#7.-import-as-a-custom-root-certificate
Author
Owner

@zhangjs commented on GitHub (Mar 2, 2022):

Hey @zhangjs at the moment, if you provide a Custom Server Certificate, it will use it for all domain names. If you use the Custom Client Certificate, it will support a domain in the Common Name attribute 👍

The doc says the client certificates "Use this certificate for SSL-Handshake to specific Server", "SSL-Handshake to your Clients" is what i need, I have the correct server certificate.

<!-- gh-comment-id:1056027992 --> @zhangjs commented on GitHub (Mar 2, 2022): > Hey @zhangjs at the moment, if you provide a Custom Server Certificate, it will use it for all domain names. If you use the Custom Client Certificate, it will support a domain in the Common Name attribute 👍 The doc says the client certificates "Use this certificate for SSL-Handshake to specific Server", "SSL-Handshake to your Clients" is what i need, I have the correct server certificate.
Author
Owner

@zhangjs commented on GitHub (Mar 2, 2022):

I have the correct certificates, I don't want to trust self-signed Root Certificate

<!-- gh-comment-id:1056028946 --> @zhangjs commented on GitHub (Mar 2, 2022): > I have the correct certificates, I don't want to trust self-signed Root Certificate
Author
Owner

@zhangjs commented on GitHub (Mar 2, 2022):

I need proxyman use the corresponding server certificate to handshake the clients based the domain, not generate dynamic certificate.

<!-- gh-comment-id:1056031007 --> @zhangjs commented on GitHub (Mar 2, 2022): I need proxyman use the corresponding server certificate to handshake the clients based the domain, not generate dynamic certificate.
Author
Owner

@zhangjs commented on GitHub (Mar 2, 2022):

Have you added your custom certificate to Keychain access and trust it?

You can check out this section: 7. Import as a Custom Root Certificate at https://docs.proxyman.io/advanced-features/custom-certificates#7.-import-as-a-custom-root-certificate

I need intercepting HTTPS Traffic from clients that use SSL-Pinning, Proxyman use the corresponding server certificate based on the domain name is what I need.

<!-- gh-comment-id:1056053336 --> @zhangjs commented on GitHub (Mar 2, 2022): > Have you added your custom certificate to Keychain access and trust it? > > You can check out this section: 7. Import as a Custom Root Certificate at https://docs.proxyman.io/advanced-features/custom-certificates#7.-import-as-a-custom-root-certificate I need intercepting HTTPS Traffic from clients that use SSL-Pinning, Proxyman use the corresponding server certificate based on the domain name is what I need.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/Proxyman#112
No description provided.