This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| custom_ssl_cert_local_cert_authority [2025/11/12 23:13] – [Create the Root Authority Self-signed Certificate] -Formatting hogwild | custom_ssl_cert_local_cert_authority [2025/11/13 01:57] (current) – [Prerequisites] -Formatting hogwild | ||
|---|---|---|---|
| Line 18: | Line 18: | ||
| ===== Prerequisites ===== | ===== Prerequisites ===== | ||
| | | ||
| - | - A FreshTomato router with approximately 2.5 kB of free NVRAM. \\ (Check "Used / Total NVRAM" in the Overview menu) | + | - A FreshTomato router with approximately 2.5 kB of free NVRAM. \\ (Check "Used / Total NVRAM" in the Overview menu) \\ \\ |
| - Any Linux distro with which you are comfortable. \\ The Certificate Authority will be built in the "/ | - Any Linux distro with which you are comfortable. \\ The Certificate Authority will be built in the "/ | ||
| | | ||
| Line 180: | Line 179: | ||
| | | ||
| | | ||
| - | |||
| ===== Create the Root Authority Self-signed Certificate ===== | ===== Create the Root Authority Self-signed Certificate ===== | ||
| Line 211: | Line 209: | ||
| ===== Create the Intermediate Authority ===== | ===== Create the Intermediate Authority ===== | ||
| - | + | \\ | |
| - | \\ Create a directory named: " | + | Create a directory named: " |
| + | \\ | ||
| + | \\ | ||
| + | '' | ||
| + | \\ | ||
| + | \\ | ||
| + | \\ | ||
| + | \\ | ||
| + | Change directories to " | ||
| + | \\ | ||
| + | \\ | ||
| + | '' | ||
| + | \\ | ||
| + | \\ | ||
| + | \\ | ||
| + | \\ | ||
| + | Set full permissions on the " | ||
| + | \\ | ||
| + | \\ '' | ||
| + | \\ | ||
| + | \\ | ||
| + | \\ | ||
| + | \\ | ||
| + | Create a file: " | ||
| + | \\ | ||
| + | \\ '' | ||
| + | \\ | ||
| + | \\ | ||
| + | \\ | ||
| + | \\ | ||
| + | Generate the word " | ||
| + | \\ | ||
| + | \\ | ||
| + | '' | ||
| + | \\ | ||
| + | \\ | ||
| + | \\ | ||
| + | \\ | ||
| + | Print the words " | ||
| + | \\ | ||
| + | \\ | ||
| + | '' | ||
| + | \\ | ||
| + | \\ | ||
| + | \\ | ||
| + | \\ | ||
| + | Run the nano editor and open the " | ||
| + | \\ | ||
| + | \\ | ||
| + | '' | ||
| + | \\ | ||
| + | \\ | ||
| + | \\ | ||
| + | \\ | ||
| + | After the file opens, //**you** // must copy the contents of the " | ||
| + | \\ | ||
| + | \\ | ||
| + | \\ | ||
| ===== Create the Intermediate Authority Key ===== | ===== Create the Intermediate Authority Key ===== | ||
| Line 232: | Line 286: | ||
| | | ||
| ===== Creating an Intermediate Certificate Request to Root ===== | ===== Creating an Intermediate Certificate Request to Root ===== | ||
| - | + | \\ | |
| - | \\ Create a certifcate signing **req**uest for the intermediate CA, using settings in the " | + | Create a certifcate signing **req**uest for the intermediate CA, using settings in the " |
| - | + | \\ | |
| + | \\ | ||
| + | '' | ||
| + | \\ | ||
| + | \\ | ||
| + | \\ | ||
| ===== Create the Intermediate Certificate ===== | ===== Create the Intermediate Certificate ===== | ||
| | | ||
| Line 288: | Line 346: | ||
| ===== Create a Certificate Chain File ===== | ===== Create a Certificate Chain File ===== | ||
| - | + | \\ | |
| - | \\ Use the concatenate command to combine the root and intermediate certificates, | + | Use the concatenate command to combine the root and intermediate certificates, |
| + | \\ | ||
| + | \\ | ||
| + | '' | ||
| + | \\ | ||
| + | \\ | ||
| + | \\ | ||
| + | \\ | ||
| + | Change permissions on the " | ||
| + | \\ | ||
| + | \\ | ||
| + | '' | ||
| + | \\ | ||
| + | \\ | ||
| + | CONSTRUCTION | ||
| OF THE | OF THE | ||
| Line 295: | Line 367: | ||
| CERTIFICATE | CERTIFICATE | ||
| - | IS NOW COMPLETE \\ | + | IS NOW COMPLETE \\ |
| - | + | \\ | |
| + | \\ | ||
| + | \\ | ||
| ===== Create a Key and Certificates for FreshTomato ===== | ===== Create a Key and Certificates for FreshTomato ===== | ||
| ==== Create a FreshTomato Key Using EC PRIME256V1 ==== | ==== Create a FreshTomato Key Using EC PRIME256V1 ==== | ||
| Line 315: | Line 388: | ||
| | | ||
| | | ||
| - | |||
| ==== Create a Freshtomato Certificate Signing Request ==== | ==== Create a Freshtomato Certificate Signing Request ==== | ||
| Line 349: | Line 421: | ||
| | | ||
| | | ||
| - | \\ | + | |
| - | + | ||
| ==== Sign the Certificate with the Intermediate Certificate Authority ==== | ==== Sign the Certificate with the Intermediate Certificate Authority ==== | ||
| | | ||
| Line 362: | Line 432: | ||
| | | ||
| ==== Set up Root with Elliptical Curve SSH Keys ==== | ==== Set up Root with Elliptical Curve SSH Keys ==== | ||
| - | \\ | + | |
| - | (This is done with root credentials because the certificates must be installed in FreshTomato. Using root access helps avoid unsecured steps in between). \\ | + | \\ (This is done with root credentials because the certificates must be installed in FreshTomato. Using root access helps avoid unsecured steps in between). \\ \\ Change to the: "/ |
| - | \\ | + | |
| - | Change to the: "/ | + | |
| - | \\ | + | |
| - | \\ | + | |
| - | '' | + | |
| - | \\ | + | |
| - | \\ | + | |
| - | \\ | + | |
| - | \\ | + | |
| - | Generate a public | + | |
| - | \\ | + | |
| - | \\ | + | |
| - | '' | + | |
| - | \\ | + | |
| - | \\ | + | |
| - | \\ | + | |
| - | \\ | + | |
| - | Display the contents of the public SSH key file: "/ | + | |
| - | \\ | + | |
| - | \\ | + | |
| - | '' | + | |
| - | (The contents should look similar to: " | + | |
| - | \\ | + | |
| - | \\ | + | |
| - | \\ | + | |
| - | \\ | + | |
| - | Now, connect to the router' | + | |
| - | \\ | + | |
| - | \\ | + | |
| - | Uncheck: \\ | + | |
| * "Allow password login" | * "Allow password login" | ||
| * "WAN access" | * "WAN access" | ||
| - | \\ Now, check: \\ | + | \\ Now, check: \\ |
| * " | * " | ||
| - | \\ | + | |
| - | \\ | + | \\ \\ \\ \\ Finally, click "Start Now" to restart the SSH server. \\ \\ \\ \\ |
| - | \\ | + | |
| - | \\ | + | |
| - | Finally, click "Start Now" to restart the SSH server. \\ | + | |
| Line 466: | Line 503: | ||
| | | ||
| | | ||
| - | Run the stream text editor | + | Run the stream text editor, make it open the " |
| | | ||
| | | ||
| - | \\ | + | '' |
| - | '' | + | |
| | | ||
| | | ||
| Line 496: | Line 532: | ||
| | | ||
| '' | '' | ||
| - | \\ | ||
| | | ||
| - | \\ | + | \\ |
| + | \\ | ||
| | | ||
| Commit all the changes to NVRAM: \\ | Commit all the changes to NVRAM: \\ | ||
| - | \\ | + | |
| | | ||
| '' | '' | ||
| - | \\ | ||
| | | ||
| - | \\ | + | \\ |
| + | \\ | ||
| | | ||
| Finally, restart the HTTP daemon: \\ | Finally, restart the HTTP daemon: \\ | ||
| Line 519: | Line 555: | ||
| The process is now complete. Now, you should be able to access your FreshTomato web interface using the custom certificates you created with your own CA. If something isn't working, review all steps and double-check that they were properly completed. \\ | The process is now complete. Now, you should be able to access your FreshTomato web interface using the custom certificates you created with your own CA. If something isn't working, review all steps and double-check that they were properly completed. \\ | ||
| | | ||
| - | \\ | + | |
| Line 537: | Line 573: | ||
| | | ||
| | | ||
| - | Since r2025.3, FreshTomato doesn' | + | Since r2025.3, FreshTomato doesn' |
| - | \\ | + | |
| * In the web interface, go to the [[admin_access|Admin Access]] menu and check the CN under "SSL Certificate" | * In the web interface, go to the [[admin_access|Admin Access]] menu and check the CN under "SSL Certificate" | ||
| * Connect via SSH to FreshTomato and run the following commands: | * Connect via SSH to FreshTomato and run the following commands: | ||
| Line 547: | Line 583: | ||
| * When the router is accessible again you'll notice that the certificate is still working fine. \\ Go back to the [[admin_access|Admin Access]] page and you will see the CN is now " | * When the router is accessible again you'll notice that the certificate is still working fine. \\ Go back to the [[admin_access|Admin Access]] page and you will see the CN is now " | ||
| * If you clicked " | * If you clicked " | ||
| - | * At this point you can go back to SSH and change back your CN and commit or, of test it further. \\ | + | * At this point you can go back to SSH and change back your CN and commit or, of test it further. |
| + | \\ | ||
| + | \\ | ||
| + | \\ | ||