Converse.js and OpenFire passwordless authentication (certificates) - xmpp

I want to enable passwordless authentication in Converse.js, using CA signed certificates, but I am having troubles with it. Here is what I've done:
Added the CA in the truststore for OpenFire;
Added the OpenFire certificate in its keystore;
Created a client valid and signed certificate.
I have also set some properties in the OpenFire server, i.e., sasl.mechs: EXTERNAL, xmpp.client.certificate.verify: true and xmpp.client.cert.policy: wanted.
My converse script looks like:
converse.initialize({
bosh_service_url: 'https://localhost:7443/http-bind/',
authentication: 'external',
show_controlbox_by_default: true,
debug: true,
});
As from this blog post, I expected the browser to request the user to provide the certificate with a popup, but I keep getting:
Failed to load resource: net::ERR_CERT_AUTHORITY_INVALID
Any help will be appreciated.

Related

How supplicant checks server certificate for 802.1X?

I installed a FreeRADIUS server for 802.1x authentication: it works when I configure the supplicant in EAP-TLS mode using a client certificate.
But when I configure the supplicant to verify the server certificate, it doesn't work.
What could be the problem?
When the supplicant is not authenticated, how can it verify the server's certificate since it does not have access to the network and therefore to the CA .... Couldn't the problem come from there?

Setting up clientCredentials Endpoint Behaviour on WCF-Custom Send Adapter

I am trying to wrap my head around how this should be set up correctly. I have two certificates, a client certificate and a service certificate. I've placed these in the MMC, on the service account for the host instance that handles the send port. So the client certificate is placed in the Personal folder and the service certificate is placed in the Trusted People folder.
I've tried using several "Find" methods to locate these certificates, such as thumbrprint and serial number, but I always get a "Certificate not found" exception back.
My current settings on the adapter.
Client certificate:
Service certificate:
My settings for Authentication:
SSL Certificate Authentication settings:
What is the correct way to add the certificates to the different stores, so that they can be located by Biztalk? I've found the MSDN documentation on the topic, but it doesn't really provide any answers: https://learn.microsoft.com/en-us/dotnet/framework/configure-apps/file-schema/wcf/clientcertificate-of-clientcredentials-element
You have to be logged in as the BizTalk Service Account to manage Certificates. Run As doesn't typically work.
Other than that, the instructions should be correct.

ADFS Claims Trust Provider with expired certificate

Hi I have multiple IDPs registered under our ADFS Claims Trust Provider. One of the IDP's federation metadata has expired certificate. Corresponding party has successful integration (with expired certificate) with other 3rd party Service Provider (non MS platform). So basically I was told to integrate this IDP with expired certificate under our ADFS SP.
Now every time when User from this IDP logs in and try to get redirected via ADFS we get following error in event log.
An error occurred during an attempt to build the certificate chain for the claims provider trust 'https://xyz.com/opensso' certificate identified by thumbprint 'D13412341231312312311231313123'.
Possible causes are that the certificate has been revoked, the certificate chain could not be verified as specified by the claims provider trust's signing certificate revocation settings or certificate is not within its validity period.
You can use Windows PowerShell commands for AD FS to configure the revocation settings for the claims provider trust's signing certificate.
Claims provider trust's signing certificate revocation settings: None
The following errors occurred while building the certificate chain:
MSIS2013: A required certificate is not within its validity period when verifying against the current system clock.
User Action:
Ensure that the claims provider trust's signing certificate is valid and has not been revoked.
Ensure that AD FS can access the certificate revocation list if the revocation setting does not specify "none" or a "cache only" setting.
Verify your proxy server setting. For more information about how to verify your proxy server setting, see the AD FS Troubleshooting Guide (http://go.microsoft.com/fwlink/?LinkId=182180).
I already tried following cmdlets but no success so far.
Set-ADFSClaimsProviderTrust -TargetName "ABC Test" -SigningCertificateRevocationCheck "None"
Set-ADFSClaimsProviderTrust -TargetName "ABC Test" -EncryptionCertificateRevocationCheck "None"
We are using ADFS 3.0 in farm setup. Is it really possible to use Claims Identity Provider with expired certificate?
Thanks
No - it's not.
All based on trust and if the certificate has expired so has the trust.
The commands that you are running are simply telling ADFS not to verify the validity of the certificate in terms of the CA signing authority.
There is no command to unexpire a certificate - you need to get a new, valid one.
And that's the way it should it should be from a security PoV.

REST Service - SSL Implementation (HTTP Error 403.7 - Forbidden)

In order to secure my Rest Services, I have enabled SSL in IIS and Created a Self-Signed Certificate and assigned it to the HTTPS binding in IIS. I exported the same as pfx file and added the same in IE also but when I try to access the Services, I get the following error on Windows 7, Enterprise edition
HTTP Error 403.7 - Forbidden
The page you are attempting to access requires your browser to have a Secure Sockets Layer (SSL) client certificate that the Web server recognizes.
And on Windows Server 2003, this is
HTTP Error 403.7 - Forbidden: SSL client certificate is required.
Internet Information Services (IIS)
I am not sure what shall I do except adding the certificate in IE under “Personal” and “Trusted Root Certification Authorities”? Could you please suggest me some step, in order to make this work.
Note: I have tried with “Self-Signed Certificates” as well as with Certificates generated from Microsoft “Certificate Services” also.
Any help is greatly appreciated.
SSL is used to verify the identity of the server, not the identity of the client. The error suggests (http://support.microsoft.com/kb/199215, "This is used for authenticating you as a valid user of the resource. ") the server wants to identify the client. Which of the two are you trying to do?
Edit: SSL requires the public part of the SSL certificate to be available to the client. Adding it to the trusted root certificates seems to me to be the only way to make the public part of a self-signed certificate available to the browser.

NSS: client certificate not found (nickname not specified)

Working with the Paypal API, yes i've checked my config files, yes i've checked username and password.... i'm outa ideas. I'm using the ExpressCheckout API downloaded from and everytime i try call the setExpressCheckout method i get the following error:
NSS: client certificate not found (nickname not specified)
I know it's something to do with an SSL error, how do i go about solving the problem?
On August 3 and August 5 PayPal renewed the SSL certificates for the following API endpoints:
api.paypal.com
api-3t.paypal.com
api-aa.paypal.com
api-aa-3t.paypal.com
If you need to import the new PayPal SSL certificates into your application or system keystore/truststore you can download them from https://ppmts.custhelp.com/app/answers/detail/a_id/920/. If you don't typically import the PayPal SSL certificates into your keystore/truststore, no action is required on your part.
For Sandbox please use this link: https://ppmts.custhelp.com/app/answers/detail/a_id/924 to Download the new SSL Certificate.
Check the paypal's server domain you send request to.
It should be api.paypal.com for certificate based authorization and api-3t.paypal.com for signature based authorization.
https://cms.paypal.com/us/cgi-bin/?cmd=_render-content&content_ID=developer/e_howto_api_nvp_NVPAPIOverview#id084E30V0RE9