- You can choose between a manual or a scripted installation
REQUIREMENTS
- You need an HTTPS server with PHP, the PHP class Normalizer (php-intl) and php-filter module
- You also need a TMPFS partition for the cache. Here is the process (Linux):
- Add your administrator user to the group of your server. Example with an Apache server:
[root]# usermod -a -G apache administrator - Change the gid of the administrator (valid during this session only):
[administrator]$ newgrp apache - Create the cache directory:
[administrator]$ mkdir /var/tmp/cmh_cache
Important: In the next 2 steps, you will need to replace 960 and 955 by the uid and the gid of your server (with Apache: id apache).
- Mount it with the good rights (apache:apache only):
[root]# mount -t tmpfs -o mand,noatime,size=256m,nosuid,noexec,uid=960,gid=955,mode=770 tmpfs /var/tmp/cmh_cache - Make it permanent (reboot-safe): add this line in
/etc/fstab:tmpfs /var/tmp/cmh_cache tmpfs mand,noatime,size=256m,nosuid,noexec,uid=960,gid=955,mode=770 0 0
You can set the size you want for the cache. Here, we chose 256MB to store 64,000 records at the most.
The cache is enabled by default, but you can turn it off by setting the variable $use_cache to false in config.php.
- Create the RSA private key (PEM format) to sign the server's answers:
openssl genrsa -out private_key 4096. - Create the associated public key for the clients to check the server's signature:
openssl rsa -in private_key -pubout -out public_key. - Store your private key outside the web server folder. Copy the public key in the folder
download/public_key. - Edit
config.phpto set the path of your private key ($PRIVATE_KEY=/path_to_your_private_key). - Edit
config.phpand replace['checkmyhttps.net','www.checkmyhttps.net','185.235.207.57']with all your server's FQDN and ip addresses.
INSTALLATION
- Copy the content of the
wwwfolder to your webroot. - Then configure your clients to use your own check server.
REQUIREMENTS
- You need an HTTPS server with PHP and php-filter module
- Prepare the directory layout
- sources
$HOME/checkmyhttps
- wwwdir
/opt/checkmyhttps/www
- private key dir
/opt/checkmyhttps/key
- tmpdir
/opt/checkmyhttps/tmp
- locate the server's https certificate
/etc/ssl/my.crt
- locate the webserver or php user
www-data
- Add this line in
/etc/fstab:
tmpfs /opt/checkmyhttps/tmp tmpfs mand,noatime,size=256m,nosuid,noexec,uid=www-data,gid=www-data,mode=770 0 0
mount /opt/checkmyhttps/tmp
INSTALLATION
- Run the script. You will be asked to generate a new app ssl certificate. Make sure to not add a
/at the end of the directories.
./install.sh /opt/checkmyhttps/www /opt/checkmyhttps/key /etc/ssl/my.crt mydomain.com
- Put your certificate in
confs/certfolder (with names:cert.cer,privkey.keyandchain.cer). - Build the Docker image:
docker build -t checkmyhttps/cmh_server .. - Run the docker container:
docker run -it --rm -p 443:443 checkmyhttps/cmh_server.
This server does not store clients data.
It only stores files containing the DNS resolution of checked hostnames and their certificates fingerprints, for a defined amount of time (default = 6 hours).
It is possible to log client request for debugging purposes. Edit config.php and set $LOG_REGS = true
