This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.
1
Web Server - Ask For Help / Re: Nettalk, LetsEncrypt and wildcard certificates
« on: August 26, 2026, 11:58:27 AM »
We are trying to handle obtain a certificate to use on an internal server for communicating with Office365.
The communication is handled from our internal server to O365, but it does require a cert to identify itself.
Doesn't need to be access from the public network.
We've gone down the road of using Caddy, etc. but the issue is that Godaddy no longer supports DNS Challenge using v1 of their API. V3 requires OAuth/Bearer token.
So, looking into somehow obtaining a wildcard on a public server and then distributing it to the internal server.
I did not know the wildcards were limited to DNS Challenge which puts us right back to where we started!
The communication is handled from our internal server to O365, but it does require a cert to identify itself.
Doesn't need to be access from the public network.
We've gone down the road of using Caddy, etc. but the issue is that Godaddy no longer supports DNS Challenge using v1 of their API. V3 requires OAuth/Bearer token.
So, looking into somehow obtaining a wildcard on a public server and then distributing it to the internal server.
I did not know the wildcards were limited to DNS Challenge which puts us right back to where we started!
2
Web Server - Ask For Help / Nettalk, LetsEncrypt and wildcard certificates
« on: August 25, 2026, 11:45:30 PM »
Is it possible to retrieve a wildcard via LetsEncrypt using Nettalk?
3
Web Server - Ask For Help / Re: DNSimple DNS method for Lets encrypt fails.
« on: August 25, 2026, 11:42:51 PM »
Who is you DNS provider?
I have a client using Godaddy and the DNS challenge method is now broken. The challenge record cannot be posted using v1 API anymore. You have to use the v3 and it requires an interactive login.
So, the option is to go to move DNS to CloudFlare or some other provider that allows the DNS challenge.
I have a client using Godaddy and the DNS challenge method is now broken. The challenge record cannot be posted using v1 API anymore. You have to use the v3 and it requires an interactive login.
So, the option is to go to move DNS to CloudFlare or some other provider that allows the DNS challenge.
4
Web Server - Ask For Help / Re: Syslog 'Server'
« on: August 12, 2026, 07:55:19 PM »
No.
I use a service from Barracuda Networks to filter email. I need to be able to search the log for certain domains and receive a notification of the messages was quarantined or blocked. Nearly 100% of google hosted domains do not have SPF/DKIM/DMARC setup correctly. Google doesn't make them do it, but then again 50% of spam comes from gmail and gmails reporting is unworkable.
Anyway, we can't just add these domains to the allow list and the only way to search the log is manually or via syslog. But the syslog also has a bunch if irrelevant stuff I want to ignore.
I also want non-admin users to be able to add domains to the search list.
So, I want to receive syslog records and then process them without using our normal syslog server.
I use a service from Barracuda Networks to filter email. I need to be able to search the log for certain domains and receive a notification of the messages was quarantined or blocked. Nearly 100% of google hosted domains do not have SPF/DKIM/DMARC setup correctly. Google doesn't make them do it, but then again 50% of spam comes from gmail and gmails reporting is unworkable.
Anyway, we can't just add these domains to the allow list and the only way to search the log is manually or via syslog. But the syslog also has a bunch if irrelevant stuff I want to ignore.
I also want non-admin users to be able to add domains to the search list.
So, I want to receive syslog records and then process them without using our normal syslog server.
5
Web Server - Ask For Help / Syslog 'Server'
« on: August 10, 2026, 01:35:08 PM »
Has anyone created a Syslog Server to receive messages?
I have a situation where I don't really want to log all that much. It's going to toss 99% of the messages.
I have a situation where I don't really want to log all that much. It's going to toss 99% of the messages.
6
Web Server - Ask For Help / Re: JWT Json Web Token
« on: November 05, 2024, 02:44:46 PM »
Okay - I think I figured out the problem.
The alg is not correct. If I switch to HS256 all works.
The website is expecting RS256.
So I suspect this means I cannot use the HMAC function since that creates HS256....
The alg is not correct. If I switch to HS256 all works.
The website is expecting RS256.
So I suspect this means I cannot use the HMAC function since that creates HS256....
7
Web Server - Ask For Help / Re: JWT Json Web Token
« on: November 04, 2024, 04:11:51 PM »
I am successfully generating the JWT, but when I verify it on jwt.io it's telling me my secret is bad....
The header and payload data is decoded fine but I'm doing something wrong on the 'secret' stuff....
Here's the code I'm using:
Any ideas?
The header and payload data is decoded fine but I'm doing something wrong on the 'secret' stuff....
Here's the code I'm using:
Code: [Select]
!Create_ClientJWT FUNCTION (STRING KeyID,STRING ClientID, string UserID, string lSecret) ! Declare Procedure
! Build Header
Header_element.kid = clip(KeyID)
Header_element.alg = 'RSA256'
jwtj.Start()
jwtj.SetTagCase(jf:CaseAsIs)
jwtj.Save(header_element,stHeader)
! Payload
Payload_element.iss = clip(ClientID) ! Issuer
Payload_element.sub = clip(UserID) ! Subject of token
Payload_element.aud = 'https://api.alt.www4.irs.gov/auth/oauth/v2/token'
Payload_element.iat = fmt.ClarionToUnixDate(today(),clock()) ! Issued At Time - Epoch time
Payload_element.exp = fmt.ClarionToUnixDate(today(),clock()+(15*60*100)) ! expire time = iat + 15 minutes
stPayload.SetValue('')
stPayload.MakeGUID4(st:format)
Payload_element.jti = stPayload.GetValue() ! Unique ID I create
jwtj.Save(Payload_element,stPayload)
! message(stHeader.GetValue(),'stheader:')
! message(stPayload.GetValue(),'stPayload:')
stHeader.Base64Encode(st:URLSafe + st:NoPadding)
stPayload.Base64Encode(st:URLSafe + st:NoPadding)
! The call in this format gives me an invalid type error..
! stToEncrypt.SetValue(stHeader.GetValue()&'.'&stPayload.GetValue())
! stToEncrypt.SetValue(NetMakeHMAC(stToEncrypt.GetValue(),stToEncrypt.Len,CLIP(lSecret),net:CALG_SHA_256))
! So I do this.... stPreEncrypt string(1024)
stPreEncrypt = clip(stHeader.GetValue())&'.'& clip(stPayload.GetValue()) ! Values already encoded
stToEncrypt.SetValue(NetMakeHMAC(stPreEncrypt,len(stPreEncrypt),CLIP(lSecret),net:CALG_SHA_256))
stToEncrypt.Base64Encode(st:URLSafe + st:NoPadding)
RETURN stHeader.GetValue()&'.'& stPayload.GetValue() &'.'& stToEncrypt.GetValue()Any ideas?
8
Web Server - Ask For Help / Re: JWT Json Web Token
« on: November 03, 2024, 11:45:03 PM »
I did not get a compile warning. 
Thanks for noticing my error. Somehow I got it stuck in my brain that it returned a ST object.

Thanks for noticing my error. Somehow I got it stuck in my brain that it returned a ST object.
9
Web Server - Ask For Help / Re: JWT Json Web Token
« on: November 03, 2024, 06:12:37 PM »
On this section of code:
stToEncrypt.SetValue(stHeader.GetValue()&'.'&stPayload.GetValue())
Crypto.MakeHMAC(stToEncrypt,CLIP(lSecret),cs:CALG_SHA_256,0)
stToEncrypt.Base64Encode(1)
stToEncrypt.Replace('+','-')
stToEncrypt.Replace('/','_')
stToEncrypt.Replace('=','')
I modified per Bruces note to
! NetMakeHMAC function passes a string and returns ST so I created a string for this part
strPREencrypt = stHeader.GetValue()&'.'&stPayload.GetValue()
stToEncrypt = NetMakeHMAC(clip(strPREencrypt ),len(strPREencrypt),CLIP(lSecret),cs:CALG_SHA_256,0)
stToEncrypt.Base64Encode(1) <<-GPF
stToEncrypt.Replace('+','-')
stToEncrypt.Replace('/','_')
stToEncrypt.Replace('=','')
And I get a GPF on base64encode.
stToEncrypt.SetValue(stHeader.GetValue()&'.'&stPayload.GetValue())
Crypto.MakeHMAC(stToEncrypt,CLIP(lSecret),cs:CALG_SHA_256,0)
stToEncrypt.Base64Encode(1)
stToEncrypt.Replace('+','-')
stToEncrypt.Replace('/','_')
stToEncrypt.Replace('=','')
I modified per Bruces note to
! NetMakeHMAC function passes a string and returns ST so I created a string for this part
strPREencrypt = stHeader.GetValue()&'.'&stPayload.GetValue()
stToEncrypt = NetMakeHMAC(clip(strPREencrypt ),len(strPREencrypt),CLIP(lSecret),cs:CALG_SHA_256,0)
stToEncrypt.Base64Encode(1) <<-GPF
stToEncrypt.Replace('+','-')
stToEncrypt.Replace('/','_')
stToEncrypt.Replace('=','')
And I get a GPF on base64encode.
10
The Rest - Ask For Help / Vapid keys v JWT ?
« on: November 03, 2024, 05:35:33 PM »
Is there a webinar on Vapid keys ?
Per google they are related:
https://blog.mozilla.org/services/2016/04/04/using-vapid-with-webpush/
Could NetGenerateVapidKeys be used to create JWTs ?
All new to me. Kind of going in circles on this stuff!
Per google they are related:
https://blog.mozilla.org/services/2016/04/04/using-vapid-with-webpush/
Could NetGenerateVapidKeys be used to create JWTs ?
All new to me. Kind of going in circles on this stuff!
11
The Rest - Ask For Help / Example of using JWTs in a web service.....
« on: November 01, 2024, 03:29:06 PM »
Moved this - posted in the wrong section....
I'm probably over thinking this. I've seen the threads here about constructing JWTs for authentication use....
https://www.nettalkcentral.com/forum/index.php?topic=8902.msg36457#msg36457
https://www.nettalkcentral.com/forum/index.php?topic=8089.msg32855#msg32855
Using the example from Wiki: https://en.wikipedia.org/wiki/JSON_Web_Token
net.SetValue('grant_type','urn:ietf:params:oauth:grant-type:jwt-bearer')
net.SetValue('assertion',StringContainingtheWholeJWT)
net.Post(urlString)
And I'd get returned values in the page received method:
if Self.ThisPage.Length() > 0
json.load(resultGroup,self.thispage.GetValuePtr(),self.thispage.Length())
display()
End
where resultgroup will be....
ResultGroup GROUP,PRE(result)
access_token STRING(512)
token_type STRING(16)
expires_in long
END
The service I'm trying to connect to (IRS) requires sending 2 JWTs (for 2 different roles) when connecting.
net.SetValue('grant_type','urn:ietf:params:oauth:grant-type:jwt-bearer')
net.SetValue('assertion',StringContainingtheWholeJWT)
net.SetValue('client_assertion_type','urn:ietf:params:oauth:client-assertion-type:jwt-bearer')
net.SetValue('client_assertion',StringContainingtheWholeJWT)
net.Post(urlString)
Am I thinking this correctly or way off base? Anyone have an example?
I'm probably over thinking this. I've seen the threads here about constructing JWTs for authentication use....
https://www.nettalkcentral.com/forum/index.php?topic=8902.msg36457#msg36457
https://www.nettalkcentral.com/forum/index.php?topic=8089.msg32855#msg32855
Using the example from Wiki: https://en.wikipedia.org/wiki/JSON_Web_Token
net.SetValue('grant_type','urn:ietf:params:oauth:grant-type:jwt-bearer')
net.SetValue('assertion',StringContainingtheWholeJWT)
net.Post(urlString)
And I'd get returned values in the page received method:
if Self.ThisPage.Length() > 0
json.load(resultGroup,self.thispage.GetValuePtr(),self.thispage.Length())
display()
End
where resultgroup will be....
ResultGroup GROUP,PRE(result)
access_token STRING(512)
token_type STRING(16)
expires_in long
END
The service I'm trying to connect to (IRS) requires sending 2 JWTs (for 2 different roles) when connecting.
net.SetValue('grant_type','urn:ietf:params:oauth:grant-type:jwt-bearer')
net.SetValue('assertion',StringContainingtheWholeJWT)
net.SetValue('client_assertion_type','urn:ietf:params:oauth:client-assertion-type:jwt-bearer')
net.SetValue('client_assertion',StringContainingtheWholeJWT)
net.Post(urlString)
Am I thinking this correctly or way off base? Anyone have an example?
12
Web Server - Ask For Help / Re: Login Page - One page on success, a different one on fail
« on: March 28, 2024, 09:30:00 AM »
Thank you ! That works.
13
Web Server - Ask For Help / Login Page - One page on success, a different one on fail
« on: March 28, 2024, 12:07:26 AM »
Using the default login page example I'm trying to go to one page if the login is successful and a different page on failure.
Reading through different posts I saw examples of:
loc:formaction = 'SuccessPage'
loc:formactiontarget = '_top'
and
p_web.SetValue('_parentPage','SuccessPage')
neither seem to work.
Using the example code I can 'Authenticate' fine but can't seem to 'act' on it....
if p_web.GetValue('loc:hash') = p_web.GetSessionValue('loc:hash')
! login checking goes here
if p_web.Authenticate(Loc:Name,Loc:Passw) = true ! WebHandler, Authenticate method needs to be fleshed out.
p_web.ValidateLogin() ! this sets the session to "logged in"
p_web.SetSessionValue('loc:hash',0) ! clear the hash, so this login can't get "replayed".
p_web.SetValue('_parentPage','SuccessPage')
else
p_web.SetValue('_parentPage','FailedPage')
end
end
I think I'm completely off base !
Reading through different posts I saw examples of:
loc:formaction = 'SuccessPage'
loc:formactiontarget = '_top'
and
p_web.SetValue('_parentPage','SuccessPage')
neither seem to work.
Using the example code I can 'Authenticate' fine but can't seem to 'act' on it....
if p_web.GetValue('loc:hash') = p_web.GetSessionValue('loc:hash')
! login checking goes here
if p_web.Authenticate(Loc:Name,Loc:Passw) = true ! WebHandler, Authenticate method needs to be fleshed out.
p_web.ValidateLogin() ! this sets the session to "logged in"
p_web.SetSessionValue('loc:hash',0) ! clear the hash, so this login can't get "replayed".
p_web.SetValue('_parentPage','SuccessPage')
else
p_web.SetValue('_parentPage','FailedPage')
end
end
I think I'm completely off base !
14
Web Server - Ask For Help / RED BOX FLASH - Error in site script
« on: May 11, 2017, 10:29:36 AM »
I've cleaned the script folder, etc. in the WEB folder and ctl-F5 on the browser.
Tried in IE and Chrome (firefox insists on added www. in front of my localhost address - but then I've always found firefox's address bar to be obtuse)....
So, what scripting (it's all freshened to 8.71) is causing this problem?
Tried in IE and Chrome (firefox insists on added www. in front of my localhost address - but then I've always found firefox's address bar to be obtuse)....
So, what scripting (it's all freshened to 8.71) is causing this problem?
15
Web Server - Ask For Help / ASSERT Error in 8.71 - You have not called CLOSE
« on: May 11, 2017, 10:15:15 AM »
This was a wizard generated webapp.
I have a client update procedure. (netwebform)
Within that update procedure is 8 tabs that contain related browses (netwebbrowse).
6 of the 8 seem to generate an ASSERT error that Close was not called....
From the client list, I double click to edit a client.
The window displays and the server generates 6 ASSERT errors ...
If I remove the call to a netwebbrowse procedure the ASSERT error to its main file goes away.
I cannot detect any settings differences between the netwebbrowses that generate the ASSERT message and those that don't. I've examined both the Netwebbrowse itself and the calling webform.
Suggestions?
I have a client update procedure. (netwebform)
Within that update procedure is 8 tabs that contain related browses (netwebbrowse).
6 of the 8 seem to generate an ASSERT error that Close was not called....
From the client list, I double click to edit a client.
The window displays and the server generates 6 ASSERT errors ...
If I remove the call to a netwebbrowse procedure the ASSERT error to its main file goes away.
I cannot detect any settings differences between the netwebbrowses that generate the ASSERT message and those that don't. I've examined both the Netwebbrowse itself and the calling webform.
Suggestions?