I run a fairly interactive Morse Code translator website that converts text into Morse code and decodes Morse back into readable text in real time using JavaScript. The site also includes audio playback for dots and dashes, dynamic UI updates, and optional sharing features. Recently, I migrated the site to HTTPS using Let's Encrypt certificates because I wanted modern browser compatibility and better security for users. While the SSL setup initially worked correctly, I’ve started running into recurring certificate, renewal, and mixed-content issues that are affecting the reliability of the website.
One of the biggest problems is automatic certificate renewal. The site is hosted on a lightweight VPS with Nginx, and I’m using Certbot for certificate management. Renewal appears to work sometimes, but on a few occasions the certificate expired unexpectedly and users began seeing browser security warnings before I noticed the issue. Since the Morse Code translator relies heavily on browser APIs like Web Audio and clipboard access, some features stop functioning properly when the browser marks the connection as insecure. I’m trying to understand the most reliable way to monitor and automate certificate renewal without risking downtime.
Another issue involves mixed-content warnings related to older assets and external resources. While most of the website now loads over HTTPS, a few JavaScript libraries, audio resources, or image assets were originally referenced using HTTP URLs. Modern browsers block some of these requests entirely, which occasionally causes parts of the translator interface or Morse code audio playback to fail. I’ve updated many of the links manually, but I’m wondering if there are recommended strategies or tools for identifying and preventing mixed-content issues more systematically.
I’m also seeing inconsistent HTTPS behavior across subdomains and staging environments. The main Morse Code website works correctly over HTTPS, but staging versions or alternate subdomains sometimes produce certificate mismatch errors or redirect loops after renewal attempts. Because I frequently test updates to the translation logic and frontend scripts before deployment, I need a setup that supports multiple environments cleanly. I’d appreciate guidance on best practices for managing Let’s Encrypt certificates across development, staging, and production domains.
Another area of confusion is browser trust and caching behavior after certificate updates. There have been situations where the certificate appeared valid on one device but still produced warnings on another due to cached SSL state or DNS propagation timing. Since the site’s users access it from many mobile and desktop browsers, troubleshooting these inconsistencies has been difficult. I’m interested in learning whether there are recommended diagnostic tools or workflows for verifying certificate health and propagation after renewals.
Finally, I’d really appreciate advice from the Let’s Encrypt community on the ideal long-term setup for a small but interactive web application like this. The Morse Code translator itself is lightweight, but because it depends on secure browser APIs and real-time functionality, HTTPS reliability is extremely important. I’d like recommendations on certificate automation, monitoring, multi-subdomain management, and preventing mixed-content problems so the site remains secure and stable without constant manual intervention. Sorry for long post