LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

JAMA & the RESTful interface

Solved!
Go to solution

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?

0 Kudos
Message 11 of 14
(919 Views)

@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.

Rolf Kalbermatter
My Blog
0 Kudos
Message 12 of 14
(914 Views)

JAMA Basic Auth with SSL.png

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

0 Kudos
Message 13 of 14
(913 Views)
Solution
Accepted by topic author JoeLV1992

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.

 

JAMA Basic Auth.png

 

Enjoy,

Joe

0 Kudos
Message 14 of 14
(878 Views)