I am trying to test API Gateway certificates locally to provide a proof of concept with no luck.
I have created a localhost IIS server and configured it up using the following help pages (provided by AWS support team):
- https://medium.com/@hafizmohammedg/configuring-client-certificates-on-iis-95aef4174ddb
- https://blogs.msdn.microsoft.com/asiatech/2014/02/12/how-to-configure-iis-client-certificate-mapping-authentication-for-iis7/
In a nutshell, my IIS is setup to use a test website, that has
- Anonymous access disabled
- SSL settings set to required
- Configuration editor configured to contain iisClientCertificateMappingAuthentication (as per above document)
- The site itself is setup to use a
server certificate
of the built inIIS Express Development Certificate
Attempting to access the site directly give me the expected result of:
I then generate a new certificate from our API Gateway
I save this certificate's key (copy / paste) to a .cer file (I have also tried .pem and .crt files)
I then try calling the same https://localhost:8000 passing the certificate via the following applications:
- Postman
- Fiddler
- cURL
All unsuccessful - the results I get from Postman are:
NOTE: I've since learnt this error is driven by the fact that the postman native app requires both a CRT file and KEY file for certificates (API Gateway only give me the crt file).
Command and result from cURL is:
curl --cert 'C:.pemPath' https://localhost:8000
- A positional parameter cannot be found that accepts argument 'C:.pemPath'.
Some reference pages that I've used for help to date (there are a few more not added):
- http://docs.aws.amazon.com/apigateway/latest/developerguide/getting-started-client-side-ssl-authentication.html
- How to configure backend server to use client side SSL certificates generated by aws gateway api?
Anyone got some ideas?