Help with Certificate installation on Progress 11.3

Posted by Alejandro Zbrun on 14-Nov-2016 08:06

Hi everyone!

I'm trying to install a private certificate with SSL, but i'm not sure where or how to install it so that Progress detect him.

What i've done:

-Install the .p12 cert in Internet Options > Content > Certs (on Windows XP, where ir run Progress client)

-Convert .p12 to .pem and install/take with mkhashfile on Proenv

After doing this, I have the same error message like if I didn't do anything of previous steps.

Please, any type of information will be util.

Really thanks, and sorry for my bad english.

All Replies

Posted by Brian K. Maher on 14-Nov-2016 08:10

The certificate needs to be in $DLC/certs and you should import it using the certutil -import command.

Posted by Alejandro Zbrun on 14-Nov-2016 08:35

Hi Brian!

The certificate are in DLC\certs, I didn't clarify this, because I supose that on the 2 step that I have done. I take a look into the directory, and yes, it is in there.

Anyway, you told me do this with the 'certutil' command, and I did this with the 'mkhashfile' command, 'cause the first command give me an error. ("No Perl script found in input")

Posted by Brian K. Maher on 14-Nov-2016 08:44

Alejandro,
 
If you are running on 64 bit Linux the cause is most likely that you have 64-bit Perl installed.  You need 32-bit Perl instead.
 
Brian

Posted by Alejandro Zbrun on 14-Nov-2016 09:24

Brian,

I'm running on Windows XP 32 bit, and I have not Perl installation on my machine. (That's because doesn't exists any current version available for Win XP)

Posted by Brian K. Maher on 14-Nov-2016 09:30

Alejandro,
 
What OpenEdge products do you have installed?  We normally install a verson of Perl in our installation.
 
Brian

Posted by Alejandro Zbrun on 14-Nov-2016 09:37

Brian,

I have installed Progress 11.3.

This is all the info I have from my OpenEdge Installation:

      Product Name : Progress

      Install Path : C:\dlc11

      Version : 11.3

      Service Pack : 00

      Temp. Fix : 00

      Build : 1232

Posted by Brian K. Maher on 14-Nov-2016 09:38

Do you have any other Windows machine with 11.3 installed?
 
If so, do the import on that machine then copy the $DLC/certs folder (zip it up), copy it to the XP box, zip up the existing certs directory then extract the new one into the certs directory.
 
 

Posted by Brian K. Maher on 14-Nov-2016 09:40

Run the showcfg command (or use the “License Info” icon in your start menu.

Posted by Alejandro Zbrun on 14-Nov-2016 09:46

The License info is:

Product Name:   Progress Dev Studio OE

Installation Date:   Wed Aug 17 09:49:24 2016

User Limit:   1

Expiration Date:   None

Serial Number:   006017633

Control Numbers:   XXXXX - XXXXX - XXXXX

Version Number:   11.3            

Machine Class:   KB

Port Number:   31

Product Name:   OE Studio

Installation Date:   Wed Aug 17 09:49:24 2016

User Limit:   1

Expiration Date:   None

Serial Number:   006017634

Control Numbers:   XXXXX - XXXXX - XXXXX

Version Number:   11.3            

Machine Class:   KB

Port Number:   31

On the other hand, I have another machine with Windows installation and Progress 11.3.

I going to try that when a come back to work tomorrow.

Really thanks! I will update you tomorrow.

Posted by Alejandro Zbrun on 15-Nov-2016 04:59

Hi Brian!

I already tried in other computer, but I had the same result :/

Do you have another suggestion? Thanks!

Posted by Brian K. Maher on 15-Nov-2016 06:04

What exactly did you do?  Please give step by step details.

Posted by Alejandro Zbrun on 15-Nov-2016 06:40

What I done was:

-Position me on the DLC\bin location from windows console.

-Try to execute 'certutil -import C:\desarrollo\xgtw.cer', also try 'certutil -format PEM -import C:\desarrollo\xgtw.cer', but both of them return the same error message. ("No perl script found in input").

That is why I installed it with the mkhashfile command.

Posted by Brian K. Maher on 15-Nov-2016 06:50

Hi Alejandro,
 
You need to do this from the Proenv command prompt, not just a normal Windows command prompt.
 
So the steps should be:
 

1)      From Windows start menu on a machine where you have a full installation select the “Proenv” icon (a command prompt will be opened).

2)      In the command prompt type “prompt $P$G” and press enter (this will show the directory & makes things easier).

3)      Copy your certificate to %DLC%\certs (i.e. copy my.cer %DLC%\certs).

4)      Run “certutil -import my.cer” (where my.cer will be changed to your certificate file name).

5)      Zip up the %DLC%\certs directory.

6)      Bring the zip file over the the Windows XP machine.

7)      Backup the existing %DLC%\certs directory on the XP machine.

8)      Extract the zip file into the %DLC%\certs directory (look at the directory after you are done to ensure that the unzip did not add an extra directory level, if it did you need to fix that).

 
Brian

Posted by Alejandro Zbrun on 15-Nov-2016 07:07

Great, I just tried that.

Arrive until step 4, where give me an error.

What I did was:

1)      From Windows start menu on a machine where I have a full installation select the “Proenv” icon.

2)      In the command prompt I typed “prompt $P$G” and pressed enter.

3)      I copied my certificate to %DLC%\certs whit the line 'copy mycert.pem C:\DLC\certs'.

4)      I runed “certutil -import mycert.pem”.

5)      After this step, I got the "No perl script found in input" error message.

Posted by Brian K. Maher on 15-Nov-2016 07:12

In your installation directory do you have a subdirectory named “Perl”?
 
If not, then I need to know exactly what products you installed (i.e. names of products, do not send serial numbers or control codes) and I need to know the Windows version and bit mode you are using (i.e. Windows 7 64-bit).
 
Brian

Posted by Brian K. Maher on 15-Nov-2016 07:12

I also need to know whether you did the install as an administrator and whether during the install did you select a typical install or a complete install.

Posted by Alejandro Zbrun on 15-Nov-2016 07:31

I don't have "Perl" subdirectory on the installation directory.

The entire list of installed productos are:

-AppBuilder

-Application Complier

-Client

-Config

-Data Administration

-Data Dicitionary

-Desktop

-Help

-License Update

-Progress Explorer Tool

-Release Notes

-Uninstall

In the OpenEdge 11.3 subdirectory

  -4GL Batch Engine

  -Add Components

  -AppBuilder

  -Application Compiler

  -Audit Policy Maintenance

  -Character Client

  -Client

  -Data Administration

  -Data Dictionary

  -Database Administration Console

  -Debugger

  -Desktop

  -Developer Studio

  -Developer Studio - Clean

  -Help

  -Licence Info

  -Licence Update

  -OpenEdge Explorer

  -Proenv

  -Proxy Generator

  -Release Notes

  -SpeedStart

  -Uninstall OpenEdge

  -Version info

My version of Windows is: Windows XP 32-bit.

Posted by Alejandro Zbrun on 15-Nov-2016 07:35

When I installed Progress, I did like Administrator user. (The same user that I use every day)

And I selected "custom install".

Posted by Brian K. Maher on 15-Nov-2016 07:36

The list of installed products is not what you sent.  Run the “Config” icon and give me the list of products shown in there (but do NOT provide the serial numbers and control codes).

Posted by Brian K. Maher on 15-Nov-2016 07:36

And, I want this info from the *other* machine which you told me privately was NOT Windows XP.

Posted by Brian K. Maher on 15-Nov-2016 07:40

Ah, custom install .. the source of all problems. <smile>
 
Can you reinstall and do a complete install this time?

Posted by Alejandro Zbrun on 15-Nov-2016 07:43

Oh, okay. The info in Config are:

Configuration File:   C:\DLC\PROGRESS.CFG

Company Name:   LASA

Product Name:   Progress Dev Studio OE

Installation Date:   Wed Aug 17 09:49:24 2016

User Limit:   1

Expiration Date:   None

Serial Number:   000000000

Control Numbers:   XXXXX - XXXXX - XXXXX

Version Number:   11.3            

Machine Class:   KB

Port Number:   31

Product Name:   OE Studio

Installation Date:   Wed Aug 17 09:49:24 2016

User Limit:   1

Expiration Date:   None

Serial Number:   000000000

Control Numbers:   XXXXX - XXXXX - XXXXX

Version Number:   11.3            

Machine Class:   KB

Port Number:   31

Posted by Alejandro Zbrun on 15-Nov-2016 07:47

Hhmmm, I'd like that we find another solution first, due to I'm sure that I don't change anything when installed it.

I only selected "custom installation" to see the installation details.

Posted by Brian K. Maher on 15-Nov-2016 07:48

i’ll do a test install on XP and let you know if you need to reinstall.  However, without that perl directory you aren’t going to get anywhere.

Posted by Alejandro Zbrun on 15-Nov-2016 07:55

There aren't another way to install only the Perl directory?

Posted by Brian K. Maher on 15-Nov-2016 07:58

No.  During an installation most things get customized with installation specific information.

Posted by Alejandro Zbrun on 15-Nov-2016 08:03

Ow, okay.

Waiting for you answer. Tomorrow I'll going to try whatever you tell me to do. Thanks!

Posted by Brian K. Maher on 15-Nov-2016 08:46

Alejandro,
 
I did a test install of 11.3 on Windows XP where I selected a custom install but didn’t look at the individual pieces.  The end result is that my install has the Perl directory so this means that during your custom install you somehow must have deselected the installation of Perl.  You need to uninstall and reinstall.  This time just do a complete install so you are ensured you will have everything you need.
 
Brian

Posted by Alejandro Zbrun on 16-Nov-2016 05:07

Hi Brian!

Okay, thanks about that. I'm reinstalling Progress right now with "Complete installation" option this time.

In twenty I will update you.

Posted by Alejandro Zbrun on 16-Nov-2016 06:16

Brian,

I already reinstalled Progress, and yes you was right, now there is Perl, because the certutil comando works.

Just done of importing the certificates, but my Progress program still doesn't detect him. (I already checked that the .0 files appear in DLC\certs) :/

Sorry about discomfort, waiting for your answer.

Posted by Brian K. Maher on 16-Nov-2016 06:20

Tell me about the certificate.  What are you trying to use it with?

Posted by Alejandro Zbrun on 16-Nov-2016 06:31

I'm just connecting the Web service that needs the certificate in progress with the connect: sentence, I supose that certs are implicit visibles.

The problem is, that after importing the certificates, the program shows the same error message, witch indicate me that certs are not visible for Progress yet.

Posted by Brian K. Maher on 16-Nov-2016 06:42

Assuming I would be able to access the web service from here, send the certificate along with the sample code you are using.
 
If I won’t be able to connect to the web service, take a look at this KB article ...
 
 
And use the curl commands shown to figure out what cipher(s) are acceptable to the web service.
 
Also, be aware that having just “the certificate” may not be enough.  We also need all of the certificates up the chain to be available in our certificate store (and I have seen some one service that had a chain where there were eleven certificates in the chain).  You can get more details on that by using the sslc command (run from a proenv command prompt).  The command would be something like the following:
 
sslc s_client -host somehost -port someport showcerts -debug
 
to save the output from this command you can add -sess_out somefilename
 

Posted by Alejandro Zbrun on 16-Nov-2016 07:00

I think that it be impossible that I give you the certificate, due to is private from an organization, and you'll going to need the credentials :|

Anyway, continuing with the case, I'm trying to use the sslc command from Proenv prompt, but... What value would replace the s_client part of the command line?

Posted by Paul Connaughton on 16-Nov-2016 07:06

Alejandro,

As Brian mentioned: we need the details for the public certificate. We do not need the private key information.

As Brian aslo mentioned, you have to make sure you import all intermediate certs and the ROOT CA cert into DLC/certs.

Importing just the .p12 may not be enough, it depends on how the certificate was created.

The best way to troubleshoot this is to launch your prowin from a proenv session. Prior to launching prowin, set the following environment variable:

proenv>set SSLSYS_DEBUG_LOGGING=5

This will create a cert.client.log in the working directory that will provide details on the handshake.

Attach that for review along with the exact error message the ABL client gets.

Thanks,

Paul

Posted by Brian K. Maher on 16-Nov-2016 07:12

all you need to change is the hostname and portnumber parameters

Posted by Alejandro Zbrun on 16-Nov-2016 07:13

Ohww, sorry, I already understanded the command and I executed him.

but while is processing, an error message appear and says something like "Windows has found a problem in sslc, and it going to shutdown the application." With the 'send' and 'not send' options.

Posted by Brian K. Maher on 16-Nov-2016 07:18

With the 'send' and 'not send' options.

You have me confused.  What do you mean?

Posted by Alejandro Zbrun on 16-Nov-2016 07:24

Sorry about that :/

This error doesn't have importance, is an windows error.

Just said.

Now I'm trying with the Paul response. (Thanks Paul by the way).

How can I do to set SSLSYS_DEBUG_LOGGING=5 in Proenv and then open prowin to execute my progress program with the WS connection?

Posted by Brian K. Maher on 16-Nov-2016 07:30

From the command prompt, do the following
 
Type in this (exactly as shown here) then press the enter key -> set SSLSYS_DEBUG_LOGGING=5
Run prowin32.exe and do your test

Posted by Alejandro Zbrun on 16-Nov-2016 07:39

Okay, god. Now, where is the log file?

Posted by Brian K. Maher on 16-Nov-2016 07:44

your working directory.  It is called either cert.client.log or client.cert.log (I don’t remember which).

Posted by Alejandro Zbrun on 16-Nov-2016 08:00

The log file isn't there, anyway I did a search in my entire disk and doesn't exist that file.

I suspect that the process isn't generating the log file.

Just to be sure, the process would be; open Proenv, and execute the line 'set SSLSYS_DEBUG_LOGGING=5' then execute the line 'prowin32.exe', here is opening the prowin, then I choose 'AppBuilder' in tools option, and then open my .w screen file, and run the process which give me the error.

At this point the log file it's already generated? Or I have to do something else?

Posted by Brian K. Maher on 16-Nov-2016 08:06

Alejandro,
 
If you cannot get that working then I think it is beyond time for you to open an official support case with us.
 
Brian

Posted by Paul Connaughton on 16-Nov-2016 08:09

I'm not sure why it is not generated or why the sslc is not working. It might be time to open a support case with us so we can dig deeper into these issues. Did you ever provide the exact error the ABL client receives? Also, is this a private or public webservice? If public, can your provide the url?

Posted by Alejandro Zbrun on 16-Nov-2016 08:16

Brian and Paul,

really thanks, but I think that is not necessary to open a case for this.

If you want to keep helping me with this inconvenient from here good, if not, don't worry. Thanks anyway.

Answering to Paul, the Web Service it's private. That's why I don't provide you with de url, because doesn't has sense.

Posted by Brian K. Maher on 16-Nov-2016 08:22

Alejandro,
 
I’m dropping off of this as there really isn’t anything more I can do for you.
 
My last suggestion is to go back to whomever created this web service and get from them the ENTIRE chain of certificates (root CA, etc) and import all of them and see what happens.
 
Brian

Posted by Alejandro Zbrun on 16-Nov-2016 08:28

Okay Brian, thanks for everything! I will post the answer, if I find the solution of course.

This thread is closed