How to set-up .app domains with ssl and apache
Get a new shiny .app domain name
Google sells .app
domains, and many other registrars.
The key thing with .app domains is they must be served over https for browsers to load it. This means you must set-up an ssl certificate.
Add an A
record pointing to your web server
Now you've got your new shiny app
domain, add an 'A' record to your .app
domain to point to your web server.
There's no magic here, (DNS isn't/cannot block http requests to your domain) it's down to the browser vendors to block http requests to .app
domains. Google's got a lot of dommanance, so at least Chrome will block http requests to .app
domtains. It won't be suprisinc if eventually all tdl's get this treatment in the future, and that's probably good.
Set-up apache virtual host for an .app
domain
Create a new site virtual host config for you .app
domain, it must be served over https so we'll use Certbot to generate an ssl certificate & apache config.
Create a standard apache vhost config, we'll use 000-default.conf
as a template:
(Replace tnetennba.app.conf
with your domain name...)
sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/tnetennba.app.conf
Then fill in with your own domain name:
<VirtualHost *:80>
ServerName tnetennba.app
ServerAdmin webmaster@localhost
DocumentRoot /var/www/tnetennba.app
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Create the directory & enable your awesome new website:
sudo mkdir /var/www/tnetennba.app
sudo a2ensite tnetennba.app
sudo service apache2 reload
Add a message to your awsome website for testing:
echo "That's a nice tnetennba." | sudo tee --append /var/www/tnetennba.app/index.html
Add a free SSL certificate to your .app domain using certbot
We assume you're using Ubuntu..
if you're not, then read: Certbot docs.
Get certbot-auto:
cd ~/
wget https://dl.eff.org/certbot-auto
chmod a+x certbot-auto
Run certbot auto to generate a certificate!
./certbot-auto --apache
Enter the number of the host you want to generate an ssl certificate for, and certbot-auto will do the rest!
Notice that certbot-auto automatically creates an additional apache config for ssl. We also choose option 2 to perform automatic redirects of http requests traffic https (which is a bit pointless on .app
domains as those requests wouldn't work anyway):
Verify your .app
domain is live and secured
By this time you'll have a .app
domain with a valid ssl certificate thanks to letsencrypt.org: