I have wordpress installed on an Ubuntu web server. I installed wordpress no problem then followed this guide to add https How To Install WordPress With Self-Signed SSL And Apache2 On Ubuntu 14.04 | Liberian Geek

my site loads https for the home page and admin page, but all other pages give me a 404 if i try to load them with https.

Maybe i did something wrong along the way but I’m not sure, I’ve tried following a few guides, editing my wordpress config file to enable ssl, editing the httpaccess file, editing the 000-default.conf and default-ssl.conf but nothing seems to work, it still kills pages like a categories page or a post.

Im not sure if this has anything to do with it but this is an intranet site, and when I set the dns so it has a domain (actually subdomain) it.name.com basically, but whenever i load the site with the domain name it instantly redirects to the IP address, but still loads. also this is a wordpress multisite and I understand somethings are different.

5 Spice ups

I assume you are using OpenSSL for a self signed cert. Here is a link that might help.

The following are from Comodo’s support site, but the instructions are fairly generic and can be used without Certificate Authority SSL Certificates for your Ubuntu Server.

I see this is old. Did you figure it out? I just did this very thing a few weeks back for another website, and had 404 errors myself. The issue was in the Apache config, which makes sense since it was a plain 404. SSL had been working fine on the Wordpress admin, and in base directory PHP web pages (wordpress homepage and custom PHP pages), but it gave a 404 for anything outside of the base directory.

I found the problem was the AllowOverride directive. It was set as

AllowOverride All

in the http, port 80 VirtualHost and Directory in sites-enabled/000-default.conf, but it was not specified in the sites-enabled/default-ssl.conf. AND of course it was set as

AllowOverride None

first in the main Apache2 config apache2.conf. That meant it was “All” for http traffic, and “None” for everything else.

I added an AllowOverride All inside my Directory section of default-ssl.conf and it solved the issue.

The reason this was the issue is because we know that Wordpress doesn’t actually make the directories that it uses in the URI paths it creates (hence the 404). Apache needs to allow Wordpress to rewrite stuff so it hits Wordpress’s actual PHP files. AllowOverride None did not allow Wordpress to do that. Wordpress uses the htaccess files to do it.

Here is the Apache doc on the AllowOverride directive - core - Apache HTTP Server Version 2.2