We, most of the time face https problem in out local domain in local virtualhost. This readme file will help you to generate ssl certificate in your local machine and it's fee of cost.
- http://localhost-1.local >= https://localhost-1.local
- http://localhost-2.local >= https://localhost-2.local
- ubuntu version >= 16.04
- php version >= 7.0.*
I hope that you already have PHP / apache / and others (except ssl) setup in your machine.
- Create a folder in your favorate location first, lets say
/home/your-pc-name/ssl
- Make folder read/write/executable
sudo chmod -R 777 /home/your-pc-name/ssl
- Now, come to the fun part
$ sudo openssl req -x509 -days 365 -newkey rsa:2048 -keyout /home/your-pc-name/ssl/localhost-1.key -out /home/your-pc-name/ssl/localhost-1.crt
Enter PEM pass phrase: 123456*put your password
Verifying - Enter PEM pass phrase: 123456*reenter your password
Country Name []: BD*change
State Name []: Dhaka*change
Locality Name []: Bangladeshi*change
Organization Name []: company-name*change
Common Name []: localhost-1.local*make it your file name
Email Address []: [email protected]*change
- Now open your virtualhost
$ sudo gedit /etc/apache2/sites-available/localhost-1.conf
- And edit
<VirtualHost *:443>
ServerName localhost-1.local
ServerAdmin [email protected]
ServerAlias www.localhost-1.local
DocumentRoot /var/www/html/localhost-1.local
SSLEngine on
SSLCertificateFile "/home/your-pc-name/ssl/localhost-1.crt"
SSLCertificateKeyFile "/home/your-pc-name/ssl/localhost-1.key"
<Directory /var/www/html/localhost-1.local/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
- Enable ssl for your virtualhost
$ sudo a2enmod ssl
$ sudo service apache2 restart
Enter PEM pass phrase: 123456*type your password
$ sudo systemctl status apache2.service
Enter PEM pass phrase: 123456*type your password
- Make it for
localhost-2.local
and for rest of the virtual host [what you have] - make it for every virtualhost you have otherwise you may redirect
- Now, browse
https://localhost-1.com