Skip to content

Instantly share code, notes, and snippets.

@BrainFeeder
Created February 28, 2017 10:31
Show Gist options
  • Save BrainFeeder/b38f6ce3cd89a381fd29440d6841b42f to your computer and use it in GitHub Desktop.
Save BrainFeeder/b38f6ce3cd89a381fd29440d6841b42f to your computer and use it in GitHub Desktop.
How-to: self sign certificate with OpenSSL and WAMP
(
Tutorial found at https://fash7y.wordpress.com/2011/12/03/solved-how-to-set-up-https-with-openssl-in-wamp/
Tested with Apache 2.4.9 and got it working.
Note: http://stackoverflow.com/questions/16658038/cant-open-config-file-usr-local-ssl-openssl-cnf-on-windows
If error during creating key file.
)
But after googling in some places, here and there..
I’ve just realized that I need this Apache 2.2.11 (include OpenSSL),
to continue working using OpenSSL.
Okay, let’s do the next steps. 😉
1. Create SSL Certificate and Key
a. Ekstrak OpenSSL to your directory, and copy this file:
openssl.cnf to .\Apache2.2.11\conf\
from folder bin, copy all files to .\Apache2.2.11\bin\
// Replace the old files! 😀
b. Open DOS command window by typing `CMD` in your search menu.
c. Type this cd C:\wamp\bin\apache\apache2.2.11\bin
d. Create a server private key with 1024 bits encryption by entering this command: openssl genrsa -des3 -out server.key 1024
// It’ll ask you a pass phrase (password), just enter any password you like .
e. Remove the pass phrase from the RSA private key (while keeping a backup copy of the original file). Enter this:
copy server.key server.key.org
openssl rsa -in server.key.org -out server.key
// It’ll ask you the pass phrase, just type it.
f. Create a self-signed Certificate (X509 structure) with the RSA key you just created. Enter this: openssl req -new -x509 -nodes -sha1 -days 365 -key server.key -out server.crt -config C:\wamp\bin\apache\apache2.2.11\conf\openssl.cnf
2. Copy the server.key and server.crt files
a. In the Apache2.2.11\conf\, create two folders named as ssl.key and ssl.crt
b. Copy the server.key file to ssl.key folder and server.crt file to ssl.crt folder
3. Edit the httpd.conf file, php.ini, and httpd_ssl.conf
a. Open httpd.conf file
b. Remove the comment ‘#’ at the line which says: LoadModule ssl_module modules/mod_ssl.so
c. Remove the comment ‘#’ at the line which says: Include conf/extra/httpd-ssl.conf
d. Open this file-> C:\wamp\bin\php\php5.3.8\php.ini
e. Remove the comment ‘;’ at the line which says: extension=php_openssl.dll
f. Open this file -> C:\wamp\bin\apache\Apache2.2.11\conf\extra\httpd_ssl.conf
g. Find the line which says: <VirtualHost _default_:443>.
h. Right after it, change the line which says:
Change the line “DocumentRoot …” to DocumentRoot “C:/wamp/www/”
Change the line “ServerName…” to ServerName localhost:443
Change the line “ErrorLog….” to Errorlog “C:/wamp/bin/apache/Apache2.2.11/logs/sslerror.log”
Change the line “TransferLog ….” to TransferLog “C:/wamp/bin/apache/Apache2.2.11/logs/sslaccess.log”
Change the line “SSLCertificateFile ….” to SSLCertificateFile “C:/wamp/bin/apache/Apache2.2.11/conf/ssl.crt/server.crt”
Change the line “SSLCertificateKeyFile ….” to SSLCertificateKeyFile “C:/wamp/bin/apache/Apache2.2.11/conf/ssl.key/server.key”
Change the line which says <Directory “C:/Program Files/Apache Software Foundation/Apache2.2/cgi-bin”> or something like that (sorry I’m forget what its default dir :p) to <Directory “C:/wamp/www/”>
Add the following lines inside those <Directory … >…</Directory> tags:
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
Change the line “CustomLog…” to CustomLog “C:/wamp/bin/apache/Apache2.2.11/logs/ssl_request.log”
4. Make sure it works!
a. In the previous DOS Command windows, enter httpd -t . If it displays Sysntax is OK, then go to next step. If not, then correct the wrong syntax and redo step 3.
b. Restart the Apache server. If restart is successful, then open the browser and enter https://localhost/
How it goes? Works, eh? Congratz! 😀
Aaand lastly, to redirect non-https entered link to https, do this.
1. Open file .\Apache2.2.11\conf\httpd.conf
2. Add this after the last line
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
3. Try this: http://localhost
Screenshot
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment