Add new attachment

Only authorized users are allowed to upload new attachments.

List of attachments

Kind Attachment Name Size Version Date Modified Author Change note
png
lets_encrypt.png 98.2 kB 8 27-May-2025 08:12 krivacsz
png
lets_encrypt_header.png 34.9 kB 1 05-Dec-2023 05:32 krivacsz

This page (revision-113) was last changed on 27-May-2025 11:30 by krivacsz

This page was created on 05-Dec-2023 05:32 by Ben Spink

Only authorized users are allowed to rename pages.

Only authorized users are allowed to delete pages.

Difference between version and

At line 4 added 7 lines
----
__⚠️ Proxy Configuration:__ if your server accesses the internet through a proxy, ensure that the following Let’s Encrypt domains are whitelisted to allow successful certificate issuance and renewal:\\
- __acme-v02.api.letsencrypt.org__\\
- __acme-staging-v02.api.letsencrypt.org__\\
\\
----
\\
At line 21 changed 2 lines
• http-01 -> This is an HTTP-based challenge and requires CrushFTP to have an HTTP Server item accessible externally on port 80. Make sure HTTPS redirect is disabled. (ACME v1 only supports HTTP-based challenges.)\\
• tls_alpn -> (Only works with Java 11 or higher) This is a TLS-based challenge and requires CrushFTP to have an HTTPS Server item accessible externally on port 443.\\
• http-01 -> This is an HTTP-based challenge and requires CrushFTP to have an HTTP Server item accessible __externally__ on port __80__.\\
• tls_alpn -> (Only works with Java 11 or higher) This is a TLS-based challenge and requires CrushFTP to have an HTTPS Server item accessible __externally__ on port __443__.\\
__⚠️ Note:__ Let’s Encrypt only validates __domain ownership__ via ports __80 (for HTTP-01 challenge)__ or __443 (for TLS-ALPN-01 challenge)__. Other ports (such as 444 or 8080) will not work for certificate issuance.\\
At line 30 changed one line
example.com,www.example.com,ftp.example.com
example.com,ftp.example.com
At line 36 changed one line
💡 Must end in .jks\\
⚠️ Must end in .jks\\
At line 38 changed one line
__Keystore Password / Key Password__:Passwords used to protect:\\
__Keystore Password / Key Password__: Passwords used to protect:\\
At line 43 changed one line
__Staging Flag:__ This enables test mode. When true, it only generates a dummy keystore (.jks), not a valid certificate.\\
__Organization Unit, Locality, State, Country Code, Email__: Used to populate the subject information in the certificate request (CSR). __Email__ is required by Let’s Encrypt and used for expiration notices.\\
At line 45 changed one line
Once all fields are completed, click Submit. The keystore will be created at the specified path.\\
__Optional Checkboxes__:\\
• __Ignore Failing “Not a CrushFTP Server”:__ Skips verification that the target is a valid CrushFTP server. Use if the check causes problems and you’re sure the server is correct.\\
• __Skip all pre-checks (DNS, CrushFTP server, etc)__: Bypasses all preliminary checks. Useful for troubleshooting.\\
• __Replicate?__: Used in clustered environments. If enabled, the cert is also replicated to slave/replica nodes.\\
At line 47 changed one line
After a successful generation, go to __Preferences → Encryption → SSL__ and enter the same full path to the .jks file, along with the passwords you specified in the Let’s Encrypt plugin. The plugin only generates the keystore — it does not apply it automatically.\\
Once all fields are completed, click the __Test__ button to validate your configuration. If the test is successful, click __Submit__ to generate the keystore at the specified location.\\
At line 49 changed one line
After saving the SSL settings, restart the HTTPS port or the CrushFTP service to load the new certificate. You can then test access using a browser.
✅__ Update the certificate automatically:__ Enables auto-renewal of the Let’s Encrypt certificate.\\
__Update certs before__: __5__ days -> Starts renewal process 5 days before expiration.\\
__Check certificate every__: __5__ days -> Interval between certificate validity checks.\\
__Update info__: Shows the last time the certificate was checked.\\
__Execute CrushTask/Job after cert renew__: After a successful renewal, runs a [CrushTask] or Job by name. Useful for actions like sending alerts.\\
At line 51 changed one line
You will need to click Submit and restart the service every 60–90 days, as Let’s Encrypt certificates are only valid for that duration.\\
⚠️__Note:__ After a successful generation, go to __Preferences → Encryption → [SSL]__ and enter the same full path to the .jks file, along with the passwords you specified in the Let’s Encrypt plugin. The plugin only generates the keystore — it does not apply it automatically.\\
At line 53 changed one line
Update the certificate automatically: This setting enables automatic certificate renewal and restarts the HTTPS Server Item ports. Let’s Encrypt allows only 5–6 attempts per week, so we recommend setting this check to run weekly.
__Submit Button:__ Issues a new certificate or initiates a renewal based on the current configuration. ⚠️ Use this only after the __Test button__ has confirmed a successful setup.\\
__Test Button:__ Immediately validates the current configuration and attempts a certificate request in staging mode to avoid rate limits. ⚠️ Always use this first to ensure your settings are correct.\\
At line 55 changed one line
Alert: To receive notifications about failed certificate updates, create a “Plugin Message” alert under Preferences → Alerts.
__Alert__: To receive notifications about failed certificate updates, create a __Plugin Message__ alert under __Preferences → Alerts__.
At line 60 changed 2 lines
__2.)__ Verify that the Staging flag is set correctly (for testing). Try checking the options to Delete account key pair and Delete domain key pair, then run the test again.\\
__3.)__ Re-enter the Keystore Password and Key Password, and test again.\\
You can verify this by using a simple command like:\\
{{{
telnet yourdomain.com 80
or
telnet yourdomain.com 443
}}}\\
If the connection succeeds, the port is open and reachable. If it fails, check your firewall, port forwarding, or network settings to ensure external access is allowed.
You can also use [yougetsignal open ports test link|https://www.yougetsignal.com/tools/open-ports/] to test your domain’s open ports from the internet.\\
If the test fails:\\
• Check your router’s port forwarding rules\\
• Ensure no firewall (local or network) is blocking access\\
• Confirm that CrushFTP is listening on the required ports in your Server Items\\
At line 89 added 56 lines
__2.)__ Verify that the domain and ports point to the correct CrushFTP instance. Make sure the DNS for your domain resolves to the correct public IP address of your CrushFTP server.\\
__⚠️ Note:__ Let’s Encrypt only validates domain ownership via ports __80__ or __443__, depending on the challenge type selected. Other ports (e.g., 444, 8080) will not work for certificate issuance.\\
\\
__3.)__Use test mode first: Always click the Test button before making a real certificate request. This validates your configuration and helps avoid hitting Let’s Encrypt rate limits during setup.\\
\\
__4.)__ Check the main CrushFTP.log for errors, especially rate limit issues. Look for entries such as __LetsEncrypt:Challenge result__ that may include error details.\\
\\
__Common Let’s Encrypt rate limit error types__:\\
{{{
SERVER|LetsEncrypt:Challenge result: {
"type": "tls-alpn-01",
"status": "invalid",
"error": {
"type": "urn:ietf:params:acme:error:rateLimited",
"detail": "Error creating new order :: too many certificates already issued for exact set of domains: example.com,www.example.com: see https://letsencrypt.org/docs/rate-limits/",
"status": 429
}
}
}}}\\
{{{
SERVER|LetsEncrypt:Challenge result: {
"type": "tls-alpn-01",
"status": "invalid",
"error": {
"type": "urn:ietf:params:acme:error:rateLimited",
"detail": "Error creating new order :: too many failed authorizations recently: see https://letsencrypt.org/docs/rate-limits/",
"status": 429
}
}
}}}\\
{{{
SERVER|LetsEncrypt:Challenge result: {
"type": "tls-alpn-01",
"status": "invalid",
"error": {
"type": "urn:ietf:params:acme:error:rateLimited",
"detail": "Error creating new account :: too many registrations for this IP :: see https://letsencrypt.org/docs/rate-limits/",
"status": 429
}
}
}}}\\
Let’s Encrypt enforces strict rate limits to prevent abuse. If your request fails, check the logs for messages indicating you’ve hit a rate limit.\\
Below are common limits and their reset windows:\\
-__Duplicate Certificate Limit__:\\
• Limit: 5 identical certificates per domain per week\\
• Reset: 7 days after the first certificate issuance\\
-__Certificates per Registered Domain__:\\
• Limit: 50 new certificates per week for the same base domain (e.g., example.com)\\
• Reset: 7 days\\
-__Failed Validation Attempts__\\
• Limit: 5 failed validation attempts per account, per hostname, per hour\\
• Reset: After 1 hour\\
-__Account Creation Limit__:\\
• Limit: 10 new accounts per IP address every 3 hours\\
• Reset: After 3 hours\\
\\
Version Date Modified Size Author Changes ... Change note
113 27-May-2025 11:30 8.752 kB krivacsz to previous
112 27-May-2025 11:30 8.744 kB krivacsz to previous | to last
111 27-May-2025 11:29 8.681 kB krivacsz to previous | to last
110 27-May-2025 11:28 8.904 kB krivacsz to previous | to last
109 27-May-2025 11:27 8.911 kB krivacsz to previous | to last
108 27-May-2025 09:58 8.893 kB krivacsz to previous | to last
107 27-May-2025 09:55 8.805 kB krivacsz to previous | to last
106 27-May-2025 09:54 8.821 kB krivacsz to previous | to last
105 27-May-2025 09:54 8.819 kB krivacsz to previous | to last
104 27-May-2025 09:53 8.794 kB krivacsz to previous | to last
103 27-May-2025 09:49 8.668 kB krivacsz to previous | to last
102 27-May-2025 09:48 8.652 kB krivacsz to previous | to last
101 27-May-2025 09:47 8.655 kB krivacsz to previous | to last
« This page (revision-113) was last changed on 27-May-2025 11:30 by krivacsz
G’day (anonymous guest)
CrushFTP11 | What's New

Referenced by
LeftMenu

JSPWiki