Using/forcing HTTPS on web app with self signed certificates

This forum is dedicated to advanced help and support :

Ask here your questions about advanced usage of Mageia. For example you may post here all your questions about network and automated installs, complex server configurations, kernel tuning, creating your own Mageia mirrors, and all tasks likely to be touchy even for skilled users.

Using/forcing HTTPS on web app with self signed certificates

Postby xboxboy » Dec 16th, '16, 05:02

Not specifically on a Mageia server (Fedora) but I imagine the process should be similar.

I have owncloud up and function fine inside the Lan. I wish to force it to use HTTPS, rather than HTTP, as I may open to the net at times.

Can anyone give me an idea where to start? How can i check if I have certificates, or need to generate them etc.
xboxboy
 
Posts: 400
Joined: Jun 2nd, '13, 06:41

Re: Using/forcing HTTPS on web app with self signed certific

Postby jiml8 » Dec 16th, '16, 05:25

You will need to generate a certificate, and you will get browser warnings about your self-signed certificate.

Code: Select all
Creating a Self-signed Certificate for Secure FTP/Web Connections
From the following site: http://www.akadia.com/services/ssh_test_certificate.html

Step 1: Generate a Private Key
The openssl toolkit is used to generate an RSA Private Key and CSR (Certificate Signing Request). It can also be used to generate self-signed certificates which can be used for testing purposes or internal usage.

The first step is to create your RSA Private Key. This key is a 1024 bit RSA key which is encrypted using Triple-DES and stored in a PEM format so that it is readable as ASCII text.

    openssl genrsa -des3 -out server.key 1024

 Follow the on-screen instuctions.

Step 2: Generate a CSR (Certificate Signing Request)
Once the private key is generated a Certificate Signing Request can be generated. The CSR is then used in one of two ways. Ideally, the CSR will be sent to a Certificate Authority, such as Thawte or Verisign who will verify the identity of the requestor and issue a signed certificate. The second option is to self-sign the CSR, which will be demonstrated in the next section.

During the generation of the CSR, you will be prompted for several pieces of information. These are the X.509 attributes of the certificate. One of the prompts will be for "Common Name (e.g., YOUR name)". It is important that this field be filled in with the fully qualified domain name of the server to be protected by SSL. If the website to be protected will be https://public.akadia.com, then enter public.akadia.com at this prompt. The command to generate the CSR is as follows:
 
   openssl req -new -key server.key -out server.csr
   
Step 3: Remove Passphrase from Key
One unfortunate side-effect of the pass-phrased private key is that Apache will ask for the pass-phrase each time the web server is started. Obviously this is not necessarily convenient as someone will not always be around to type in the pass-phrase, such as after a reboot or crash. mod_ssl includes the ability to use an external program in place of the built-in pass-phrase dialog, however, this is not necessarily the most secure option either. It is possible to remove the Triple-DES encryption from the key, thereby no longer needing to type in a pass-phrase. If the private key is no longer encrypted, it is critical that this file only be readable by the root user! If your system is ever compromised and a third party obtains your unencrypted private key, the corresponding certificate will need to be revoked. With that being said, use the following command to remove the pass-phrase from the key:

    cp server.key server.key.org
    openssl rsa -in server.key.org -out server.key

The newly created server.key file has no more passphrase in it.

    -rw-r--r-- 1 root root 745 Jun 29 12:19 server.csr
    -rw-r--r-- 1 root root 891 Jun 29 13:22 server.key
    -rw-r--r-- 1 root root 963 Jun 29 13:22 server.key.org

Step 4: Generating a Self-Signed Certificate
At this point you will need to generate a self-signed certificate because you either don't plan on having your certificate signed by a CA, or you wish to test your new SSL implementation while the CA is signing your certificate. This temporary certificate will generate an error in the client browser to the effect that the signing certificate authority is unknown and not trusted.

 To generate a temporary certificate which is good for 365 days, issue the following command:

    openssl x509 -req


You will tell owncloud to require an https connection in the owncloud/config/config.php by adding this line:

Code: Select all
  'forcessl' => true,

inside the array $CONFIG

How you install the certificate depends on your installation. I have my copy running on Nas4Free, not in linux, and the Nas4Free config gui gives me the setup stuff for putting the certs in.

I would suggest you take a look at Nextcloud, which is a fork of Owncloud. When you do a search and find the history that led to the fork, you will see why I say this.
jiml8
 
Posts: 1254
Joined: Jul 7th, '13, 18:09

Re: Using/forcing HTTPS on web app with self signed certific

Postby xboxboy » Dec 17th, '16, 13:00

Thanks Jim,
been meaning to do the switch, and you convinced me... wasn't easy, I'd done the latest owncloud update, which nextcloud didn't like... got it sorted in the end.

Now, to work on these certificates .....
xboxboy
 
Posts: 400
Joined: Jun 2nd, '13, 06:41

Re: Using/forcing HTTPS on web app with self signed certific

Postby rickst29 » Mar 3rd, '17, 05:53

hmm. I wouldn't use des3, and I wouldn't use a keylength of only 1024. Rather, something along these lines:

openssl req -nodes -newkey rsa:4096 -sha256 -keyout test.key -out test.csr
rickst29
 
Posts: 33
Joined: May 30th, '11, 00:55

Re: Using/forcing HTTPS on web app with self signed certific

Postby xboxboy » Mar 3rd, '17, 06:48

Thanks rick

I haven't had time to try this sadly, this was on a little server at home.

My webhost for my business now has ssl enabled complementary, so I've been able to set up a hosted nextcloud instance there, which has worked out great!
xboxboy
 
Posts: 400
Joined: Jun 2nd, '13, 06:41


Return to Advanced support

Who is online

Users browsing this forum: No registered users and 1 guest