08-24-2021 01:05 PM
It turns out we have SSL setup on our server. I found the function to setup SSL.
https://zone.ni.com/reference/en-XX/help/371361R-01/lvcomm/http_client_configssl/#Input2
Curious, where do I obtain these files and key codes?
08-24-2021 01:22 PM - edited 08-24-2021 01:28 PM
@JoeLV1992 wrote:
Curious, where do I obtain these files and key codes?
It depends. If your HTTP server is using a public certificate purchased from a known CA then you don't have to do much. Before LabVIEW 2021 you could have a problem that the local root certificates that the curl library uses, that is underneath the HTTP Client VIs, might be outdated and don't authenticate current CA certificates anymore. So they had to be updated from time to time if you try to access public web servers with SSL/TLS that don't verify anymore. In LabVIEW 2021 the HTTP Client VIs use the platform system certificate store now, which should be kept updated by Windows Update automatically.
If you use so called self signed certificates for you SSL (more correct TLS, SSL is outdated and should not be used anymore but is still often used, even when referring to TLS in reality) setup on the server, you will have to export the public key of that certificate using for instance the OpenSSL command line tool and create a cer file that you can then specify for the CA_certificate_file to the SSL Config VI.
08-24-2021 01:27 PM - edited 08-24-2021 01:45 PM
So, I got a response from the server and made it through the three gates of security to establish contact.
1) The user name and password in open handle do nothing for the JAMA authentication.
2) I had to make a custom header "Authorization" with the value "Basic <username>:<password>"
3) My server is setup for SSL, and I only had to create a certificate for the CA certificate file input. This was done in chrome by clicking on the lock icon in the address bar, and exporting a 64 bit cer file.
4) Verify Server is set to false. Setting it to true will generate an error on the GET command.
5) I needed a cookie file so that the jama-csrf-token could be generated
I hope this helps anyone else who may have to interface with JAMA.
Joe
08-25-2021 07:42 AM - edited 08-25-2021 07:44 AM
Update to the previous post. I was getting a server error with the previous post's code for malformed entry and thought it was due to the request I was making. Our server is setup for basic authentication/authorization. Therefore, I removed the SSL step and added in a 64 bit encoding based on the discussion from this group.
https://forums.ni.com/t5/LabVIEW/Forcing-Authentication-with-HTTP-Client/td-p/2509656
Here is what the code looks like now.
Enjoy,
Joe