Apache/NGINX vhost's
Apache vhost
vim /etc/httpd/conf/httpd.conf
add << include vhosts/*.conf >> at the bottom
mkdir /etc/httpd/vhosts
vim /etc/httpd/vhosts/domains.conf
##############
### NO SSL ###
##############
<VirtualHost *:80>
DocumentRoot "/var/www/vhost/domain.com/"
ServerName www.domain.com
<Directory /var/www/vhost/domain.com/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
</Directory>
<Directory "/var/www/vhost/domain.com/secure_domain">
AuthType Basic
AuthName "Restricted Content"
AuthUserFile /etc/httpd/.htpasswd
Require valid-user
</Directory>
</VirtualHost>
###########
### SSL ###
###########
<VirtualHost *:443>
DocumentRoot "/var/www/vhost/domain.com/"
ServerName www.domain.com
ErrorLog logs/ssl_error_log
TransferLog logs/ssl_access_log
LogLevel warn
SSLEngine on
SSLProtocol -all +TLSv1 +TLSv1.1 +TLSv1.2
SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5:!SEED:!IDEA
SSLCertificateFile /etc/pki/tls/certs/www_domain_com.crt
SSLCertificateKeyFile /etc/pki/tls/private/www_domain_com.key
<Directory /var/www/vhost/domain.com/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
</Directory>
<Directory "/var/www/vhost/domain.com/secure_domain">
AuthType Basic
AuthName "Restricted Content"
AuthUserFile /etc/httpd/.htpasswd
Require valid-user
</Directory>
</VirtualHost>
Generating a .htpasswd:
htpasswd -c /var/www/vhost/domain.com/secure_domain username
The SSL conf << /etc/httpd/conf.d/ssl.conf >> should look like this
Listen 443 https
SSLPassPhraseDialog exec:/usr/libexec/httpd-ssl-pass-dialog
SSLSessionCache shmcb:/run/httpd/sslcache(512000)
SSLSessionCacheTimeout 300
SSLRandomSeed startup file:/dev/urandom 256
SSLRandomSeed connect builtin
SSLCryptoDevice builtin