Scale up as you grow — whether you're running one virtual machine or ten thousand.

From GPU-powered inference and Kubernetes to managed databases and storage, get everything you need to build, scale, and deploy intelligent applications.

This textbox defaults to using Markdown to format your answer.
You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!
Great tutorial; lots of details & easy to follow. Probably should mention we can avoid using self-signed certs, and use Let’sEncrypt CA.
I’ve used this on all of the Ubuntu servers I’ve deployed and in a custom installation script for an Ubuntu based ownCloud server.
The ownCloud server brought something to my attention: the ssl-params.conf file is never enabled. It does not show in conf-enabled after completing an install, and ownCloud complains about the max-age setting not being enabled.
How is the .conf file being accessed by Apache or the SSL mod to pull the settings for use?
I’ve taught myself Linux and bash scripting over the course of three months while developing that installation script (it automates nearly every aspect of a 20 page walk-through I wrote for configuring the server based on very high security standards), so I may be making a noob mistake.
Why am I getting the following error?
AH00526: Syntax error on line 12 of /etc/apache2/conf-enabled/ssl-params.conf:
Invalid command 'SSLSessionTickets', perhaps misspelled or defined by a module not included in the server configuration
Action 'configtest' failed.
The Apache error log may have more information.
Hello,
I am getting this kind of error : Could you help to identify the issue ?
AH00526: Syntax error on line 12 of /etc/apache2/conf-enabled/ssl-params.conf:
Invalid command 'SSLSessionTickets', perhaps misspelled or defined by a module not included in the server configuration
Action 'configtest' failed.
The Apache error log may have more information.
I generally appreciate the clarity of your explanations; this is a definite +!
However, I would need to move one step beyond the " Redirect “/” “https://your_domain_or_IP”" line, which works perfectly from the Internet to my web server, but not from clients on the same LAN as the server.
Can I branch to something like "Redirect “/” “https://my_server_local_IP” by detecting the origin of the client IP or else?
Just Subscribed in order to leave comment. First, thank you for this one and the rest of tutorials on your website.
I have a file upload/sharing website and after i followed your tutorial i have had a few issues (having to update my apache because of certain rules in ssl-params, i was on Ubuntu 15.10, had to do an upgrade on my server over ssh, which failed at some point because of mysql 5.7 being not able to have blank port with phpmyadmin, well it was painful but at some point i managed to do the upgrade) but the biggest one was the “remote url upload”, Curl, which was not working anymore. I have checked all sort of things to disable verify_peer and verify_host but found that my file sharing script had already a false status on those. I was kinda lost and at some point i remember we had applied security parameters in ssl-params from a thirdparty that you were sharing here but that they could be the faulty ones. I tried to do an sudo a2disconf ssl-params, restartedapache and BINGO, it was working again. I then commented re-enable the ssl-params conf and isolated the faulty rule after commenting all of them one after the other. I’m here to share my finding, the faulty rule is
Header always set X-Frame-Options DENY
So in Shorter terms,
Comment this rule in /etc/apache2/conf-available/ssl-params.conf
#Header always set X-Frame-Options DENY
If you need CURL to work with this tutorial.
Thanks.
I had hard time to understand the difference between a Self-Signed SSL certificate and a CA one, despite your yellow information note (sorry I am a beginner :).
So here the stackoverflow answer on the matter that helped me to clearly understand the point:
The SSL certificate solves two purposes: encryption of traffic (for RSA key exchange, at least) and verification of trust. As you know, you can encrypt traffic with (or without, if we’re talking SSL 3.0 or TLS) any self-signed certificate. But trust is accomplished through a chain of certificates. I don’t know you, but I do trust verisign (or at least Microsoft does, because they’ve been paid lots of money to get it installed in their operating systems by default), and since Verisign trusts you, then I trust you too. As a result, there’s no scary warning when I go to such an SSL page in my Web browser because somebody that I trust has said you are who you are.
More: http://stackoverflow.com/questions/292732/self-signed-ssl-cert-or-ca
Great and easy understandable tutorial. Thank you for the invested time on writing it.
I´ve did all as you well describe on the tutorial, however now I´m facing an issue I´d like to know how to solve.
Despite it works and I´m able to access via HTTPS https://www.camarahispano-turca.org/
would like to know how to switch the “red warning” icon into the trustable “green shield” one
thanks for being patient since I´m newbie on all this server issues
First of all, thank you @justin for your great and easily understandable tutorial. It helps me a lot.
I´ve followed and did all you said on it and finally I achieved to connect the site via HTTPS [https://www.camarahispano-turca.org]
However, I´m not sure how I should do to get switch the “red warning” icon into the “green shield” one more trustable
Looking forward to hear from you
So I have no Idea what I’m doing wrong, I’m getting a redirect loop when trying to go thru this guide with a domain name. Is that my problem? Should I just use the Let’sEncrypt service instead?
The weirdest part to is on part 4, it says that the syntax is OK. Could it be that I’m using CloudFlare as DNS?
Could you clarify how your 000-default.conf File looks? As that seems to be my problem… Have you done this with a domain name instead of ip?