1、創建私有CA,並給服務器簽發:html
在肯定配置爲CA的服務器上生成一個自簽證書,併爲CA提供所須要的目錄及文件便可;nginx
步驟:web
(1) 生成私鑰;vim
]# (umask 077; openssl genrsa -out /etc/pki/CA/private/cakey.pem 4096)服務器
注意:文件名要與配置文件中的文件名一致;session
]# ll /etc/pki/CA/private/:查看文件權限確保爲600;tcp
(2) 生成自簽證書;ide
]# openssl req -new -x509 -key /etc/pki/CA/private/cakey.pem -out /etc/pki/CA/cacert.pem -days 3655測試
-new:生成新證書籤署請求;spa
-x509:生成自籤格式證書,專用於建立私有CA時;
-key:生成請求時用到的私有文件路徑;
-out:生成的請求文件路徑;若是自籤操做將直接生成簽署過的證書;
-days:證書的有效時長,單位是day;
根據提示輸入相關信息,完成便可;
提示輸入:Country Name (2 letter code) [XX]:CN
提示輸入:State or Province Name (full name) []:Beijing
提示輸入:Locality Name (eg, city) [Default City]:Beijing
提示輸入:Organization Name (eg, company) [Default Company Ltd]:MageEdu
提示輸入:Organizational Unit Name (eg, section) []:Ops
提示輸入:Common Name (eg, your name or your server's hostname) []:ca.magedu.com
若是是我的通訊爲本身的名字,若是是服務器爲服務器主機名;
提示輸入:Email Address []:caadmin@magedu.com
]# ls /etc/pki/CA/
查看要有certs crl newcerts這3個目錄,若是沒有要自行建立;
(3) 爲CA提供所需的目錄及文件;
]# mkdir -pv /etc/pki/CA/{certs,crl,newcerts}
]# touch /etc/pki/CA/{serial,index.txt}
]# echo 01 > /etc/pki/CA/serial
在用到證書的服務器上操做:
1.建立一個目錄存放主機的私鑰;
2.生成私鑰;
3.生成證書籤署請求
4.將.csr文件請求經過可靠方式發送給CA主機;
步驟:(以httpd爲例)
(1) 用到證書的主機生成私鑰;
]# mkdir /etc/httpd/ssl
]# cd /etc/httpd/ssl
]# (umask 077; openssl genrsa -out /etc/httpd/ssl/httpd.key 2048)
(2) 生成證書籤署請求
]# openssl req -new -key /etc/httpd/ssl/httpd.key -out /etc/httpd/ssl/httpd.csr -days 365
根據提示輸入相關信息,完成便可;
提示輸入:Country Name (2 letter code) [XX]:CN
提示輸入:State or Province Name (full name) []:Beijing
提示輸入:Locality Name (eg, city) [Default City]:Beijing
提示輸入:Organization Name (eg, company) [Default Company Ltd]:MageEdu
提示輸入:Organizational Unit Name (eg, section) []:Ops
提示輸入:Common Name (eg, your name or your server's hostname) []:www.magedu.com
此處必定要爲客戶端訪問的地址;
提示輸入:Email Address []:webadmin@magedu.com
提示輸入:A challenge password []:可爲空
提示輸入:An optional company name []:可爲空
(3) 將請求經過可靠方式發送給CA主機;
]# ls:生成一個httpd.csr文件,把此文件用可靠方式發送給CA主機;
實際應用時,是CA公司來人到現場取走文件;
實驗環境,就是以scp命令,可實現兩主機間複製文件;
]# scp httpd.csr root@172.18.250.131:/tmp/
表示在本地複製httpd.csr文件,以遠程主機172.18.250.131的root用戶身份拷貝此文件到遠程主機的/tmp/目錄下
輸入yes,確認鏈接,再輸入遠程主機root用戶的登陸密碼,便可複製完成;
就是實現了把httpd.csr文件拷貝的CA主機上;
(4) 在CA主機上籤署證書;
]# openssl ca -in /tmp/httpd.csr -out /etc/pki/CA/certs/httpd.crt -days 365
顯示提示:Sign the certificate? [y/n]:y
顯示提示:1 out of 1 certificate requests certified, commit? [y/n]y
把簽署的證書httpd.crt發送給服務器主機:
在實驗環境,還用scp兩主機直接拷貝文件httpd.crt便可;
]# scp certs/httpd.crt root@172.18.252.23:/etc/httpd/ssl/
輸入yes,確認鏈接,再輸入遠程主機root用戶的登陸密碼,便可複製完成;
此時在服務器主機上的httpd.csr就沒用了,能夠刪了;
在CA主機上的簽署前的httpd.csr也沒用了,也能夠刪了;
以上建立私有CA完成;
可在服務器主機或客戶端主機上(只要有證書),均可查看證書;
]# openssl x509 -in /etc/pki/CA/certs/httpd.crt -noout -serial -subject
2、nginx啓用ssl
# vim /etc/nginx/conf.d/ssl.conf
server {
listen 443;
server_name _;
ssl on;
ssl_certificate /etc/httpd/ssl/httpd.crt;
ssl_certificate_key /etc/httpd/ssl/httpd.key;
ssl_session_timeout 5m;
ssl_protocols SSLv2 SSLv3 TLSv1;
ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
ssl_prefer_server_ciphers on;
location / {
root html;
index index.html index.htm;
}
}
測試兩臺web服務器80和443正常。
3、添加iptables mangle
查看:
# iptables -t mangle -nvL --line-number
修改:
# iptables -t mangle -R PREROUTING 2 -d 192.168.1.212 -p tcp --dport 443 -j MARK --set-mark 10
添加:
# iptables -t mangle -A PREROUTING -d 192.168.1.212 -p tcp --dport 80 -j MARK --set-mark 10
# iptables -t mangle -A PREROUTING -d 192.168.1.212 -p tcp --dport 80 -j MARK --set-mark 10
# iptables -t mangle -L -n -v
# iptables -t mangle -A PREROUTING -d 192.168.1.212 -p tcp --dport 443 -j MARK --set-mark 10
配置ipvsadm
# ipvsadm -C
# ipvsadm -l -n
[root@192 ~]# ipvsadm -A -f 10 -s rr
[root@192 ~]# ipvsadm -a -f 10 -r 192.168.1.213 -m -w 2
[root@192 ~]# ipvsadm -a -f 10 -r 192.168.1.214 -m -w 2
[root@192 ~]# ipvsadm -E -f 10 -s rr -p