If you have encrypted your website, API, Telnet server, or other service with TLS (SSL), good for you!
Now, do you know when those certificates will expire? If they expire without renewal, your service could become unavailable without warning.
In the past, to find expiration dates for digital certificates on IBM i, you’d either have to look in the Digital Certificate Manager (DCM), call the Retrieve Certificate Information (QYCURTVCI, QycuRetrieveCertificateInfo) API, or keep extremely good notes!
CERTIFICATE_INFO, an IBM i service recently delivered by IBM, solves all this. This SQL table function, documented here, returns a result table that contains information about server or Certificate Authority (CA) certificates, including their expiration date.
Here’s how to use CERTIFICATE_INFO to find expiring certificates.
Read more →
Call/Parm Your Open Source Apps from RPG and CL with QSHCALL
/0 Comments/in Open Source, PHP, Python, RPG /by Richard SchoenA few years back I created the QShell on IBM i (QshOni) project to allow QShell/PASE (open source) apps to be more easily integrated and used with traditional IBM i job streams written in RPG and CL. Since then, many developers have adopted QshOni to utilize their open source apps in conjunction with their classic traditional apps.
Recently I added several new commands to QshOni to make living the PASE life even easier for RPG developers. Today’s focus will be on the QSHCALL command.
Read more →
Code for IBM i Fridays: A Free Seiden Community Event
/in VS Code for i /by Alan SeidenThe Code for i extension to Visual Studio Code (VS Code) has become ever more popular and powerful. It’s also free and open source.
Seiden Group has been hosting online gatherings to share, learn, solve problems, and contribute improvements to Code for i. Hosted by Alan Seiden, the meetings often include guests such as Liam Allan, the originator of Code for i.
Read more →
Which PHP Versions Get Critical Security Updates?
/0 Comments/in PHP /by Alan SeidenAlthough there are many reasons—including performance—to update to newer PHP releases, the number one reason is to avoid losing security updates.
Each version of PHP (7.4, 8.0, 8.1, 8.2, 8.3, etc.) has three years of support before it is considered end of life. For two years, it gets bug fixes and all security fixes. In the third year, it gets only critical security fixes. After that, nothing!
Read more →
How to Protect Secure Websites & APIs from Certificates Expiring
/1 Comment/in API & Web Security /by Alan SeidenIf you have encrypted your website, API, Telnet server, or other service with TLS (SSL), good for you!
Now, do you know when those certificates will expire? If they expire without renewal, your service could become unavailable without warning.
In the past, to find expiration dates for digital certificates on IBM i, you’d either have to look in the Digital Certificate Manager (DCM), call the Retrieve Certificate Information (QYCURTVCI, QycuRetrieveCertificateInfo) API, or keep extremely good notes!
CERTIFICATE_INFO, an IBM i service recently delivered by IBM, solves all this. This SQL table function, documented here, returns a result table that contains information about server or Certificate Authority (CA) certificates, including their expiration date.
Here’s how to use CERTIFICATE_INFO to find expiring certificates.
Read more →
Node.js v20 and Other Updated Packages Require New IBM i Repositories
/0 Comments/in Open Source /by Alan SeidenAs we mentioned in our article on installing ODBC via yum, the latest IBM i open source packages require new repositories.
A notable example is Node.js v20. When we hear users say, “I don’t see Node.js v20 listed in available packages, and yum returns ‘No package nodejs20 available‘,” the reason invariably is that the new repositories,
ibmi-base
andibmi-release
, have not been installed.Read more →
What IBM i Users Should Check when Learning of an Open Source Security Vulnerability
/0 Comments/in Open Source /by Alan SeidenA client asked about a vulnerability found in
libwebp
, which is used by PHP’s image-handlinggd
extension.My first step was to find a reputable source for details. According to this trusted article about the vulnerability, the issue affected only
libwebp
versions 1.3.1 and earlier. I checked our own system and found we had a patched version from IBM, so we were safe. The client was, too.Here is the procedure you can use for checking the version of this or any other open source package on IBM i. Read more →
APCu Extension Added to Seiden CP+ PHP
/0 Comments/in PHP /by Alan SeidenPHP sites and APIs on IBM i have a new way to run even faster. As noted in our CP+ PHP Changelog, we have added the APCu extension to our PHP distribution.
The APC User Cache (APCu) extension is an “in-memory key-value store for PHP” that evolved from the old APC extension (minus the opcode caching). We added APCu at the request of a Linux PHP user who migrated their PHP application to the IBM i to simplify their architecture.
Read more →
Finding Security Fixes for Apache on IBM i
/0 Comments/in Apache, APIs & Web Services /by Alan SeidenThe Apache-based IBM HTTP Server for i is a vital defense in web and API security for IBM i. As such, it requires regular attention.
IBM Support’s PCI Compliance web page is a resource we use to help our clients protect their systems.
Even if your organization does not process, store, or transmit credit card information, applying the PTFs recommended for PCI compliance constitutes a general best practice for IBM i web and API security.
Read more →
Our Favorite ibm_db2 Settings for PHP
/0 Comments/in PHP /by Alan SeidenWhen supporting our Seiden CP+ PHP, we found that documentation for the “classic” ibm_db2 extension for IBM i wasn’t easy to find.
To help ourselves as well as others, we updated the PHP.net manual to describe each
ibm_db2.i5_*
setting. This blog post links to that manual page and highlights a few of our favorite ibm_db2 settings.Read more →
Read-only Mode in VS Code for IBM i
/6 Comments/in VS Code for i /by Alan SeidenIf you are using the Code for i extension and would like to “browse” or view certain source members without the risk of modifying them, use the “Read only” or “Protected” capability.
Read more →