Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

evaluate what it takes to implement client certificates #3

Closed
pliablepixels opened this issue Apr 29, 2015 · 12 comments
Closed

evaluate what it takes to implement client certificates #3

pliablepixels opened this issue Apr 29, 2015 · 12 comments

Comments

@pliablepixels
Copy link
Member

Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.

@pliablepixels pliablepixels self-assigned this Apr 29, 2015
@pliablepixels pliablepixels added this to the future milestone Apr 29, 2015
@pliablepixels
Copy link
Member Author

Requested by Brandon @brandoncasaba

@black98fxstc
Copy link

I was looking at taking this on but it looks either simple or impossible. From what I can tell changing

$http.get('some url')
to
$http({
method : "GET",
url : "some url";
withCredentials: (using client certificate) ? true : false
}}
will cause the container to handle it. If not there doesn't seem to be another way without going down to the platform level. I've got the certificates working in Chrome but it's been years since I've done any JS development so I'm not tooled up.

@pliablepixels
Copy link
Member Author

unfortunately withCredentails doesn't work with clientCerts.

@dimaj and I have had a discussion on this, but I just haven't found time to dive into it - been working on other higher priority issues @zmNinja and my new pet project, oZone

The proposed approach is this:

  1. Start with https://github.com/zxyang/cordova-plugin-clientcertificate
  2. Then modify this file: github.com/zxyang/cordova-plugin-clientcertificate/blob/master/src/android/ClientCertificate.java so that:
    Lines 59-61 are removed (in the onReceivedClientCertRequest method) and method execute method on line 82 would follow this example to register all installed certificates on the device (http://stackoverflow.com/questions/4458046/listing-all-installed-certificates-on-android) (this was @dimaj 's idea)

@black98fxstc
Copy link

Hmm, Doesn't choosePrivateKeyAlias do all the work for you? OK clear enough anyway and closer to home for me, if I can find the time.

@pliablepixels
Copy link
Member Author

Is there a system I can try with client certs? I have some code I want to test

@brandoncasaba
Copy link

I just use Chrome these days, but this would be a quick guide to set up a test environment with Apache:
http://www.garex.net/apache/

@stale stale bot added the wontfix label Mar 8, 2018
@ZoneMinder ZoneMinder deleted a comment from stale bot Mar 9, 2018
@stale
Copy link

stale bot commented May 8, 2018

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

@sbcdave
Copy link

sbcdave commented Feb 4, 2020

I was just looking for a way to setup zmNinja to use client certs and stumbled across this. Alternatively I have been looking for a way to have Apache only allow whitelist IPs, and to email me when a request comes in from something not on the whitelist, with a link that allows me to add them to the whitelist if I chose (so I can add my own cell phone when ever I need to). Client certs would be so much nicer though.

@dimaj
Copy link

dimaj commented Feb 4, 2020

I was recently playing with port knocking. If your goal is to secure access to your ZM server from external requests, y ou can install something like knockd and configure it to allow access to your ZM server only after a specific sequence of port connection attempts within a specific amount of time.
when all rules are satisfied, you are granted access for a specific amount of time from your IP address (i.e. address where "knocking" came from)

@sbcdave
Copy link

sbcdave commented Feb 4, 2020 via email

@dimaj
Copy link

dimaj commented Feb 5, 2020 via email

@Kilonga
Copy link

Kilonga commented Jun 24, 2020

I have ZoneMinder working through a reverse proxy (nginx) and using client certificates issued by my private CA. This works well when using a browser where I can install the client certificate but zmNinja doesn't have an option to include a certificate for authentication. I think this gives a lot of extra security to the setup and would be very useful to have.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

6 participants