Setup Owncloud 6 with self signed SSL certificate on Ubuntu 13.10

In this tutorial, we will setup Owncloud 6 with self signed SSL certificate on Ubuntu 13.10 Server.In other words,setting HTTPS for Owncloud 6 in Ubuntu 13.10 Server.In recent months, Owncloud 6 has been released.In our last post,we have already written document on “how to install Owncloud 6 in Ubuntu 13.10 Server“.Hence, we expect,you have already setup the Owncloud 6.x on Ubuntu 13.10 Server.

IMPORTANT NOTE : There is a one major difference in Ubuntu 13.10 Server is,it is shipped with by-default Apache version 2.4. Hence,we have to configure the Apache as per version 2.4 .

Follow the given below steps, to setup Owncloud 6 with self signed SSL certificate/HTTPS on Ubuntu 13.10 Server

Step 1 : Install the OpenSSL package in the Server.This package is important to install,it helps to generate the SSL certificate.

sudo apt-get install openssl

Step 2 : Enable the SSL and Rewrite module in Apache 2.4 .

sudo a2enmod ssl
sudo a2enmod rewrite

Step 3: Now create the directory for SSL Certificates which will be generated with the help of command openssl.

sudo mkdir -p /etc/apache2/ssl

Step 4 : Generate Self Signed Certificate by using below given command.

sudo openssl req -new -x509 -days 365 -nodes -out /etc/apache2/ssl/owncloud.pem -keyout /etc/apache2/ssl/owncloud.key

Step 5: Configure Apache 2.4 Webserver in Ubuntu 13.10 Server(By-default in Ubuntu 13.10 Server edition, apache version 2.4 is shipped)

Note: There are some changes have been found in Apache 2.4 version related to configuration.

In previous post of setup Owncloud 6 in Ubuntu 13.10 Server,we are using /etc/apache2/conf.d/owncloud.conf file. Hence, we will edit the /etc/apache2/conf.d/owncloud.conf .
In case,you have owncloud configuration file in other path then edit that particular file.

Description of our Server

Operating System : Ubuntu 13.10 Server edition
Arch : x86_64
Apache version : 2.4
Owncloud Version : 6.0 (or 6.x)

Owncloud DocumetRoot path : /var/www/owncloud
Owncloud configuration File Path : /etc/apache2/conf.d/owncloud.conf

NOTE: We have written both IP based and Name based Virtual Host Apache configuration. Use anyone method as per your requirement

IP Based VirtualHost Apache configuration for https in Owncloud Server

(A) Edit apache2.conf file : Edit /etc/apache2/apache2.conf file.
And add the line IncludeOptional conf.d/*.conf at the end of file

sudo vi /etc/apache2/apache2.conf
### paste below given lines,at the end of file apache2.conf ###3

IncludeOptional conf.d/*.conf

Save and close the apache2.conf file . Restart the apache2 service

sudo /etc/init.d/apache2 restart

(B) Edit Owncloud configuration file:
Edit the /etc/apache2/conf.d/owncloud.conf file.

sudo vi /etc/apache2/conf.d/owncloud.conf 

Paste the below given contents.In this configuration we have configured SSL for owncloud and redirected all port 80 traffic to port 443 i.e HTTPS.

IMPORTANT NOTE : REPLACE 192.168.56.102 with your Server IP Address (use ifconfig command to find the ip address of server)

Optional Note: In case if you want both http and https running then remove all lines in between of line “#### Redirect to port 443 ###” and “#### End of Redirection configuration ###”



#### Redirect to port 443 ###
RewriteEngine on
ReWriteCond %{SERVER_PORT} !^443$
RewriteRule ^/(.*) https://%{HTTP_HOST}/$1 [NC,R,L]
#### End of Redirection configuration ###

DocumentRoot /var/www/owncloud/

    Options Indexes FollowSymLinks MultiViews
    AllowOverride All
    Require all granted






####Configuration for SSL #####
SSLEngine on
SSLCertificateFile /etc/apache2/ssl/owncloud.pem
SSLCertificateKeyFile /etc/apache2/ssl/owncloud.key
#### End of SSL Configuration ####

DocumentRoot /var/www/owncloud/

    Options Indexes FollowSymLinks MultiViews
    AllowOverride All
    Require all granted


Save and close the file. Restart the apache2 service

sudo /etc/init.d/apache2 restart

Step C : Now Open the web browser and type ip address in URL address field.

For Example http://192.168.56.102 (Replace 192.168.56.102 with your server ip address)

https owncloud

https owncloud

https owncloud

NAME Based VirtualHost Apache configuration for https in Owncloud Server

To setup the name based virtual apache configuration,follow given below steps

(A) Edit apache2.conf file

Edit /etc/apache2/apache2.conf file.One parameter you have to modify and one parameter you have to add.

sudo vi /etc/apache2/apache2.conf

(i) Modify the value of “HostnameLookups Off” to “HostnameLookups On”

(ii) Add below given new line in apache2.conf file at the end of last line
IncludeOptional conf.d/*.conf

(B) Edit Owncloud configuration file.

Edit the Owncloud configuration file.In our system it is located in /etc/apache2/conf.d/owncloud.conf

sudo vi /etc/apache2/conf.d/owncloud.conf

Paste below given contents in /etc/apache2/conf.d/owncloud.conf file. Save and close the file after pasting
NOTE: Replace example.com with your Domain name


ServerName example.com
ServerAlias www.example.com

RewriteEngine on
ReWriteCond %{SERVER_PORT} !^443$
RewriteRule ^/(.*) https://%{HTTP_HOST}/$1 [NC,R,L]


    Options Indexes FollowSymLinks MultiViews
    AllowOverride All
    Require all granted





ServerName example.com
ServerAlias www.example.com

SSLEngine on
SSLCertificateFile /etc/apache2/ssl/owncloud.pem
SSLCertificateKeyFile /etc/apache2/ssl/owncloud.key
DocumentRoot /var/www/owncloud/

    Options Indexes FollowSymLinks MultiViews
    AllowOverride All
    Require all granted



(C) Restart the apache2 service

sudo /etc/init.d/apache2 restart

(D) Open the web browser and type the domain name.

For example.

http://example.com

Replace example.com with your domain name in URL address field in web browser.

https owncloud

https owncloud part 2

17 thoughts on “Setup Owncloud 6 with self signed SSL certificate on Ubuntu 13.10”

  1. Hey,
    Great tutorial but I’ve hit a snag. I get this

    Syntax error on line 270 of /etc/apache2/apache2.conf:
    Invalid command ‘IncludeOptional’, perhaps misspelled or defined by a module not included in the server configuration
    Action ‘configtest’ failed.

    After trying to restart apache.

    Reply
  2. добрый день Шарад у меня вопрос как можно убрать пред просмотр видео при скачке файла

    Reply
    • Translating into Emglish – “Good afternoon, I have a question Sharad how to remove short preview video in the jump file”

      Answer:
      Hello Evgeniy ,

      I did not understand your question. Can you give describe more or send screenshot to me

      Regards
      Sharad

      Translating to Russian ( using google translate )

      Здравствуйте Евгений,

      Я не понимаю ваш вопрос. Можете ли вы дать описать более или отправить скриншот мне

      С уважением
      Sharad

      Reply
  3. Why doesn’tsd you use /etc/apache2/site-avail and a2ensite?
    Those are the recommended ways to handle web sites for Apache in Debian/Ubuntu.

    Reply
  4. I found it, I’ve used a name instead of the IP adress of the server when i made the cert file. still have some issues with the apache server not finding the servername, but everything works in owncloud.

    Reply
    • In Ubuntu 13.10 , default is apache 2.4. Here for Server Name lookup by apache in VirtualHost configuration.
      Enable HostnameLookups in /etc/apache2/apache2.conf
      Change the value of “HostnameLookups Off” to “HostnameLookups On”

      Restart the apache2 service

      For further reading,have a look on this title “NAME Based VirtualHost Apache configuration for https in Owncloud Server ” in post.

      Reply
  5. Hi.

    after enabling ssl and https i’m getting this message in my Owncloud 6 settings:

    “Your web server is not yet properly setup to allow files synchronization because the WebDAV interface seems to be broken”

    Reply
      • Hello

        I’ve followed the steps in your OwnCloud 6 setup guide to the best of my ability 🙂
        I will try to regenerate, and if that dont work, I’ll send you the log.

        Reply
  6. I followed your instructions to the “T” on setting up owncloud and this guide and now im getting page cannot be displayed with https and if i type http:// it gets redirected to https.. Before I did the owncloud https guide my site including owncloud (http) was working. What could I be missing? Thanks for you help in advance.

    Reply
    • Hello Ralphael,

      In Ubuntu 13.10 Server, by-default apache 2.4 is shipped.Which has some different parameter name.
      In configuration,I have redirected port 80 to 443 that is http to https.

      To work both http and https,
      Remove below given line

      #### Redirect to port 443 ###
      RewriteEngine on
      ReWriteCond %{SERVER_PORT} !^443$
      RewriteRule ^/(.*) https://%{HTTP_HOST}/$1 [NC,R,L]
      #### End of Redirection configuration ###
      
      Check in your system, where the owncloud files are located.
      The same path you have to mention in DocumentRoot section.
      
      I have given 2 types of VirtualHost Configuration,hence use only one.
      (1) Name Based Virtual Host
      (2) IP based Virtual Host
      

      Troubleshooting Steps :

      This document is created for Owncloud 6.x on Ubuntu 13.10 with Apache 2.4 version.

      (1) sudo apache2ctl -v ( The Apache version should be 2.4 or above)
      (2) cat /etc/issue (The Ubuntu version should be 13.10 )
      (3) sudo dpkg -l|grep owncloud (Owncloud package must be version 6 or more in version 6 series)
      (4) enable ssl and rewrite module (Here, I suspect ssl might not enabled)
      (5) Check the apache configuration of owncloud . Either it should be Name based or IP based
      The DocumentRoot should have exact path of owncloud files path for eg. /var/www/owncloud
      (6) There should be no duplicate owncloud apache configuration. For this check the files inside /etc/apache/sites-enabled and /etc/apache/conf.d

      (7) Recheck all the steps as per your Name based or IP based configuration

      IMPORTANT NOTE: Check the typo or spelling error.

      (8) If still has issue. Send below given information
      (a) What is the Ubuntu version you are using (sudo cat /etc/issue)
      (b) Owncloud apache configuration file
      (c) What is your requirement, IP based or Name based Virtual Host. If Name based then are you using any domain name.

      Reply
      • (a) What is the Ubuntu version you are using (sudo cat /etc/issue)
        Ubuntu 13.10 n l

        (b) Owncloud apache configuration file
        /etc/apache2/conf.d/owncloud.conf

        ServerName ralphaeljohnson.com
        ServerAlias http://www.ralphaeljohnson.com

        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Require all granted

        ServerName ralphaeljohnson.com
        ServerAlias http://www.ralphaeljohnson.com

        SSLEngine on
        SSLCertificateFile /etc/apache2/ssl/owncloud.pem
        SSLCertificateKeyFile /etc/apache2/ssl/owncloud.key
        DocumentRoot /var/www/owncloud/

        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Require all granted

        (c) What is your requirement, IP based or Name based Virtual Host. If Name based then are you using any domain name.
        Namebased… domain name is ralphaeljohnson.com

        thanks for your help.

        Reply
        • Edit apache2.conf file

          sudo vi /etc/apache2/apache2.conf

          Find “HostnameLookups Off” and replace to “HostnameLookups On” in /etc/apache2/apache2.conf file

          Add line IncludeOptional conf.d/*.conf in /etc/apache2/apache2.conf file at end of file.

          Enable ssl sudo a2enmod ssl

          Restart apache2 service.

          sudo /etc/init.d/apache restart
          
          Reply
  7. I apologize if this question is not entirely appropriate for this post

    I recently installed owncloud on Ubuntu 12.04 (desktop 64 bit). The install process went smoothly and while I can access owncloud throughout my LAN with no problem, remote access is a no go.

    Is it possible that because I have not installed DNSMASQ that that is why I cannot access my server via onecloud outside of my network? I have enabled both ports 80 and 443 as well. Any Ideas? Also I am running owncloud via http not https (ssl) but I do not think that would affect my remote access.

    See here for the original link I used..https://www.digitalocean.com/community/articles/how-to-setup-owncloud-5-on-ubuntu-12-10

    Reply

Leave a Comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.