# CertSage 3.0.0 Release

**URL:** <https://community.letsencrypt.org/t/certsage-3-0-0-release/238630>\
**Category:** Client dev\
**Created:** [June 19, 2025, 1:36am UTC](https://community.letsencrypt.org/t/certsage-3-0-0-release/238630 "2025-06-19T01:36:54Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![griffin](https://sea3.discourse-cdn.com/letsencrypt/user_avatar/community.letsencrypt.org/griffin/32/50204_2.png) [@griffin](https://community.letsencrypt.org/u/griffin)\
**Post date:** [June 19, 2025, 1:36am UTC](https://community.letsencrypt.org/t/certsage-3-0-0-release/238630/1 "2025-06-19T01:36:54Z")

</div>

> **[GitHub - GriffinSoftware/CertSage at v3.0.0](https://github.com/GriffinSoftware/CertSage/tree/v3.0.0)**
>
> v3.0.0

* * *

- Vastly streamlined underlying architecture and user experience to make CertSage more reliable and easier to use than ever
- No more clicking around to get back to the CertSage main page; everything can now be accomplished from the main page
- Added a button to both acquire and install a certificate in a single step
- Added color-coding to displayed certificate information text: green is good; yellow means your certificate needs renewed; red means your certificate is expired

---

<div class="post-metadata">

**Author:** ![billsey](https://sea3.discourse-cdn.com/letsencrypt/user_avatar/community.letsencrypt.org/billsey/32/26530_2.png) [@billsey](https://community.letsencrypt.org/u/billsey)\
**Post date:** [June 22, 2025, 2:02am UTC](https://community.letsencrypt.org/t/certsage-3-0-0-release/238630/2 "2025-06-22T02:02:41Z")

</div>

This may be dealt with elsewhere, but I'm not finding it... Running on Godaddy to renew or replace my Let's Encrypt cert. I get this error:  
urn:ietf:params:acme:error:unauthorized  
: Invalid response from http:///.well-known/acme-challenge/2vUG5m-pDlBnuaJ70bd2X-Yug02OgTfBz\_cc7tf29MU: 404  
It looks like it's not creating the acme-challenge file, hence the error. When I look in that folder sure enough the new files aren't there, just the ones from April when I last updated the cert. The site I was using before seem to be broken, which is why I'm trying CertSage.

---

<div class="post-metadata">

**Author:** ![griffin](https://sea3.discourse-cdn.com/letsencrypt/user_avatar/community.letsencrypt.org/griffin/32/50204_2.png) [@griffin](https://community.letsencrypt.org/u/griffin)\
**Post date:** [June 22, 2025, 2:40am UTC](https://community.letsencrypt.org/t/certsage-3-0-0-release/238630/3 "2025-06-22T02:40:57Z")

</div>

Are you hosting multiple domain names in cPanel?

Challenge files are used once then deleted.

---

<div class="post-metadata">

**Author:** ![billsey](https://sea3.discourse-cdn.com/letsencrypt/user_avatar/community.letsencrypt.org/billsey/32/26530_2.png) [@billsey](https://community.letsencrypt.org/u/billsey)\
**Post date:** [June 23, 2025, 1:43am UTC](https://community.letsencrypt.org/t/certsage-3-0-0-release/238630/4 "2025-06-23T01:43:40Z")

</div>

Turns out my issue was that I had the script in my Scripts folder, not in the root. Once I moved it things worked as expected. 🙂

---

<div class="post-metadata">

**Author:** ![ttes0](https://sea3.discourse-cdn.com/letsencrypt/user_avatar/community.letsencrypt.org/ttes0/32/88040_2.png) [@ttes0](https://community.letsencrypt.org/u/ttes0)\
**Post date:** [June 29, 2025, 3:47pm UTC](https://community.letsencrypt.org/t/certsage-3-0-0-release/238630/5 "2025-06-29T15:47:21Z")

</div>

After using CertSage, do I need to leave the certsage.php in my root dir or is it ok to rename it back to txt?

---

<div class="post-metadata">

**Author:** ![griffin](https://sea3.discourse-cdn.com/letsencrypt/user_avatar/community.letsencrypt.org/griffin/32/50204_2.png) [@griffin](https://community.letsencrypt.org/u/griffin)\
**Post date:** [June 29, 2025, 4:34pm UTC](https://community.letsencrypt.org/t/certsage-3-0-0-release/238630/6 "2025-06-29T16:34:28Z")

</div>

If you want autorenewals to work, the PHP needs to remain in place. There's no real benefit in renaming or removing `certsage.php`.

---

<div class="post-metadata">

**Author:** ![ttes0](https://sea3.discourse-cdn.com/letsencrypt/user_avatar/community.letsencrypt.org/ttes0/32/88040_2.png) [@ttes0](https://community.letsencrypt.org/u/ttes0)\
**Post date:** [July 2, 2025, 10:22pm UTC](https://community.letsencrypt.org/t/certsage-3-0-0-release/238630/7 "2025-07-02T22:22:54Z")

</div>

Thank you. How does this affect the current Sectigo cert (expire in about a year) I now have installed on my cPanel? Does it just override it, or do I need to do anything else beside running your install script?

---

<div class="post-metadata">

**Author:** ![ttes0](https://sea3.discourse-cdn.com/letsencrypt/user_avatar/community.letsencrypt.org/ttes0/32/88040_2.png) [@ttes0](https://community.letsencrypt.org/u/ttes0)\
**Post date:** [July 2, 2025, 10:24pm UTC](https://community.letsencrypt.org/t/certsage-3-0-0-release/238630/8 "2025-07-02T22:24:24Z")

</div>

Also, are there any possible security issues/concerns with having the certsage.php in the root dir?

---

<div class="post-metadata">

**Author:** ![griffin](https://sea3.discourse-cdn.com/letsencrypt/user_avatar/community.letsencrypt.org/griffin/32/50204_2.png) [@griffin](https://community.letsencrypt.org/u/griffin)\
**Post date:** [July 2, 2025, 11:12pm UTC](https://community.letsencrypt.org/t/certsage-3-0-0-release/238630/9 "2025-07-02T23:12:54Z")

</div>

> [@ttes0](#):
>
> How does this affect the current Sectigo cert (expire in about a year) I now have installed on my cPanel? Does it just override it, or do I need to do anything else beside running your install script?

If you install a Let's Encrypt certificate into cPanel via CertSage, your underlying webserver (e.g. Apache) will be configured to utilize that certificate rather than any previously-installed certificate for the applicable domain name(s). Any previous certificates you have installed into cPanel should still be archived inside cPanel.

> [@ttes0](#):
>
> are there any possible security issues/concerns with having the certsage.php in the root dir?

Not to my knowledge. The password protection in CertSage mitigates the minimal malicious possibilities of unwanted external usage of CertSage. If you want to be overly cautious, you could replace the contents of `password.txt` with contents the length of a novel. 😁

---

<div class="post-metadata">

**Author:** ![ttes0](https://sea3.discourse-cdn.com/letsencrypt/user_avatar/community.letsencrypt.org/ttes0/32/88040_2.png) [@ttes0](https://community.letsencrypt.org/u/ttes0)\
**Post date:** [July 3, 2025, 3:03pm UTC](https://community.letsencrypt.org/t/certsage-3-0-0-release/238630/10 "2025-07-03T15:03:10Z")

</div>

I'd attempted to install (as a separate step) the certificate via certsage.php, but I get an error: " Trouble...  
password was incorrect"  
I did change the password in the password.txt file, but I don't recall whether it was after I acquired the certificate initially, and if that could case this issue.

---

<div class="post-metadata">

**Author:** ![ttes0](https://sea3.discourse-cdn.com/letsencrypt/user_avatar/community.letsencrypt.org/ttes0/32/88040_2.png) [@ttes0](https://community.letsencrypt.org/u/ttes0)\
**Post date:** [July 3, 2025, 3:28pm UTC](https://community.letsencrypt.org/t/certsage-3-0-0-release/238630/11 "2025-07-03T15:28:06Z")

</div>

I selected the EC key type

---

<div class="post-metadata">

**Author:** ![griffin](https://sea3.discourse-cdn.com/letsencrypt/user_avatar/community.letsencrypt.org/griffin/32/50204_2.png) [@griffin](https://community.letsencrypt.org/u/griffin)\
**Post date:** [July 3, 2025, 3:35pm UTC](https://community.letsencrypt.org/t/certsage-3-0-0-release/238630/12 "2025-07-03T15:35:25Z")

</div>

The password at any given time is whatever is in the `password.txt` file. A submitted password is checked against the file contents every time a submission is made.

---

<div class="post-metadata">

**Author:** ![ttes0](https://sea3.discourse-cdn.com/letsencrypt/user_avatar/community.letsencrypt.org/ttes0/32/88040_2.png) [@ttes0](https://community.letsencrypt.org/u/ttes0)\
**Post date:** [July 3, 2025, 3:55pm UTC](https://community.letsencrypt.org/t/certsage-3-0-0-release/238630/13 "2025-07-03T15:55:32Z")

</div>

I made several attempts, but it I get the same 'incorrect' password response each time.  
My webhosting provider would be willing to install this for me, but they ask for the cert & key & ca-bundle (this I don't see in the certsage dir?)

---

<div class="post-metadata">

**Author:** ![griffin](https://sea3.discourse-cdn.com/letsencrypt/user_avatar/community.letsencrypt.org/griffin/32/50204_2.png) [@griffin](https://community.letsencrypt.org/u/griffin)\
**Post date:** [July 3, 2025, 4:43pm UTC](https://community.letsencrypt.org/t/certsage-3-0-0-release/238630/14 "2025-07-03T16:43:59Z")

</div>

Are you looking in the correct password.txt file? You should be able to either copy and paste the entire contents from the password.txt file into the password box in CertSage or change the contents of the password.txt file to whatever you have been entering into the password box in CertSage. If you're using multiple copies of CertSage, which is very common, I strongly recommend having the contents of all of their password.txt files being identical to prevent confusion.

---

<div class="post-metadata">

**Author:** ![ttes0](https://sea3.discourse-cdn.com/letsencrypt/user_avatar/community.letsencrypt.org/ttes0/32/88040_2.png) [@ttes0](https://community.letsencrypt.org/u/ttes0)\
**Post date:** [July 3, 2025, 11:40pm UTC](https://community.letsencrypt.org/t/certsage-3-0-0-release/238630/15 "2025-07-03T23:40:46Z")

</div>

This is the first time I'd ever used CertSage, v3 in this case, and downloaded directly from this page as certsage.txt. The password used was my own 20 character randomly created password which I'd inserted into the password.txt file. Then, I'd created an 'EC' key type, asked a couple of questions here (above), and later attempted to install the certificate.

---

<div class="post-metadata">

**Author:** ![ttes0](https://sea3.discourse-cdn.com/letsencrypt/user_avatar/community.letsencrypt.org/ttes0/32/88040_2.png) [@ttes0](https://community.letsencrypt.org/u/ttes0)\
**Post date:** [July 3, 2025, 11:56pm UTC](https://community.letsencrypt.org/t/certsage-3-0-0-release/238630/16 "2025-07-03T23:56:12Z")

</div>

I just tried it again and received message: "Success! Certificate installed into cPanel."  
I renamed the password.txt file and reloaded mydomain/certsage.php, which resulted in CertSage creating a new password.txt file, which I pasted into the 'password challenge' box.  
Your passwords do not seem to include the types of characters I'd used - e.g. Zg)=@rYyj%'\>&^DNAD^7

---

<div class="post-metadata">

**Author:** ![griffin](https://sea3.discourse-cdn.com/letsencrypt/user_avatar/community.letsencrypt.org/griffin/32/50204_2.png) [@griffin](https://community.letsencrypt.org/u/griffin)\
**Post date:** [July 4, 2025, 7:21am UTC](https://community.letsencrypt.org/t/certsage-3-0-0-release/238630/17 "2025-07-04T07:21:22Z")

</div>

The generated password is a base64 conversion of random binary data. It's possible that the password you created yourself couldn't be URL-encoded, which resulted in corrupting it when transmitting it to your server. Something I'll need to keep in mind. 🤔

[https://stackoverflow.com/questions/45337203/is-there-a-benefit-to-using-binary-data-for-an-http-post-request](https://stackoverflow.com/questions/45337203/is-there-a-benefit-to-using-binary-data-for-an-http-post-request)

---

<div class="post-metadata">

**Author:** ![griffin](https://sea3.discourse-cdn.com/letsencrypt/user_avatar/community.letsencrypt.org/griffin/32/50204_2.png) [@griffin](https://community.letsencrypt.org/u/griffin)\
**Post date:** [July 4, 2025, 7:22am UTC](https://community.letsencrypt.org/t/certsage-3-0-0-release/238630/18 "2025-07-04T07:22:02Z")

</div>

> [@ttes0](#):
>
> Success! Certificate installed into cPanel.

That's a great sign! 🥳

---

<div class="post-metadata">

**Author:** ![zaepho](https://sea3.discourse-cdn.com/letsencrypt/user_avatar/community.letsencrypt.org/zaepho/32/88341_2.png) [@zaepho](https://community.letsencrypt.org/u/zaepho)\
**Post date:** [July 24, 2025, 10:16pm UTC](https://community.letsencrypt.org/t/certsage-3-0-0-release/238630/19 "2025-07-24T22:16:12Z")

</div>

Thanks for putting this together! I was worried I was going to have to find a different host when I realized namecheap didn't use autossl for LE certs.

It would be really nice if autorenew could be sent as an action such that the script would produce meaningful plain text output (possibly only on error?) that cron could then send an email on. This would be more intelligible from a monitoring standpoint.

If this is in a repo somewhere I'd be happy to take a crack at this and submit a PR to you.

---

<div class="post-metadata">

**Author:** ![griffin](https://sea3.discourse-cdn.com/letsencrypt/user_avatar/community.letsencrypt.org/griffin/32/50204_2.png) [@griffin](https://community.letsencrypt.org/u/griffin)\
**Post date:** [July 24, 2025, 11:50pm UTC](https://community.letsencrypt.org/t/certsage-3-0-0-release/238630/20 "2025-07-24T23:50:35Z")

</div>

Thanks. I'm happy that CertSage worked for you. 🙂

Though I often take and incorporate recommendations, I solely maintain CertSage myself and specifically only release here in this community. I appreciate the offer to help code though.

In addition to PHP's standard error-logging mechanisms, there is a `responses.txt` located in the `CertSage` data directory that contains all communications from the Let's Encrypt servers throughout the ACME process. At present, this is the best place to start looking if something goes awry when CertSage is operating "headlessly" (by being called via some method where its output is not being returned for display to the user). For a quick "upgrade" for monitoring purposes, the output of the curl call in the cronjob could simply be redirected to a file then opened via a browser or text editor. That would immediately yield the desired information. Yes it is possible to enable email output from the cron job though it could get very annoying after a short time (as it did during my testing). Keep in mind that any execution of CertSage via some means other than a cronjob (e.g. search bot) would obviously not be enhanced by tweaks to the cron job.

Certainly things for me to think about here. 🤔

[Next page](https://community.letsencrypt.org/t/certsage-3-0-0-release/238630.md?page=2)
