1.为什么要使用HTTPS 2.什么是HTTPS 3.TLS/SSL如何实现加密? 4.Https加密模型?(对称加密、非对称加密、CA机构)
对称加密: 使用相同的秘钥,对文件进行加密与解密。
非对称加密:一对秘钥,公钥,私钥。 公钥可以对外。 私钥不可以对外。
CA机构: 花钱 警察局(权威机构): 身份证: 1.登记信息 2.拍照 3.。。。。 4.等,返回给用户。(留存一份档案)
5.Https通讯全过程(TLS)
6.Https证书类型、购买指南、注意事项? dv:个人使用(免费 一年 ) ov:企业使用 (中型) ev:增强型证书 (银行、政府、) 建设银行、工商银行
注意:证书和身份证一样,到期重新申请,需要重新替换证书。 单域名:www.oldxu.net 多域名:blog.oldxunet edu.oldxu.net www.oldxu.net 通配符:*.oldxu.net
黑户:自行模拟充当CA机构,颁发证书:
7.如何实现单台Https、又如何实现集群Https?
0.准备存储证书的目录位置
[root@web01 ~]# mkdir -p /etc/nginx/ssl_key
[root@web01 ~]# cd /etc/nginx/ssl_key
1.申请证书:
[root@web01 ssl_key]# openssl genrsa -idea -out server.key 2048
[root@web01 ssl_key]# openssl openssl req -days 36500 -x509 -sha256 -nodes -newkey rsa:2048 -keyout server.key -out server.crt
2.配置证书:
[root@web01 ssl_key]# cat /etc/nginx/conf.d/m.oldxu.net.conf
server {
listen 443 ssl;
server_name m.oldxu.net;
ssl_protocols TLSv1.1 TLSv1.2;
ssl_certificate ssl_key/server.crt;
ssl_certificate_key ssl_key/server.key;
root /code/m;
location / {
index index.html;
}
}
server {
listen 80;
server_name m.oldxu.net;
return 302 https://$http_host$request_uri;
}
3.浏览器测试访问:
8.如何将Https集成集群架构实现全站Https?
1.搭建http环境 负载均衡 两个节点
2.负载均衡上配置https证书
2.1)拷贝证书
[root@lb01 conf.d]# scp -r root@172.16.1.7:/etc/nginx/ssl_key /etc/nginx/
2.2)改造负载均衡配置
[root@lb01 conf.d]# vim proxy_blog.oldxu.net.conf
upstream blog {
server 172.16.1.7:80;
server 172.16.1.8:80;
}
server {
listen 443 ssl;
server_name blog.oldxu.net;
ssl_certificate ssl_key/server.crt;
ssl_certificate_key ssl_key/server.key;
location / {
proxy_pass http://blog;
include proxy_params;
}
}
server {
listen 80;
server_name blog.oldxu.net;
return 302 https://$http_host$request_uri;
}
2.3)前端负载走https,后端应用走http协议,php应用会不支持,所以需要开启一个参数,让其支持。
# 注意:一定是在应用服务器上配置的。
[root@web01 ssl_key]# cat /etc/nginx/conf.d/blog.oldxu.net.conf
server {
listen 80;
server_name blog.oldxu.net;
root /code/wordpress;
client_max_body_size 100m;
location / {
index index.php;
}
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param HTTPS on; # 让php支持负载走https,后端应用走http
include fastcgi_params;
}
}
需求1: 模拟银行网站场景,用户访问网站主站 使用 http 协议提供访问,当用户点击登陆时,则网站会跳转至一个新的域名,并使用的是 Https 提供安全访问
#1.主页展示 http://yh.oldxu.net(提供网页浏览) #2.模拟登陆 http://yh.oldxu.net/login(相当于点击了登陆按钮)
10.0.0.8 [root@web02 ~]# cat /etc/nginx/conf.d/yh.oldxu.net.conf server { listen 80; server_name yh.oldxu.net; root /code;
location / {
index index.html;
}
location /login {
return 302 https://start.oldxu.net;
}
}
[root@web02 ~]# echo "icbc" > /code/index.html
#3.登陆页面 https://star.oldxu.net (提供安全登陆) [root@web01 ssl_key]# cat /etc/nginx/conf.d/start.oldxu.net.conf server { listen 443 ssl; server_name start.oldxu.net; ssl_certificate ssl_key/server.crt; ssl_certificate_key ssl_key/server.key; root /code;
location / {
index index.html;
}
} [root@web02 ~]# echo "icbc-https" > /code/index.html
1.https协议; 1.1 对称加密; 1.2 非对称加密; 1.3 CA机构(身份证); 1.4 TLS加密与解密的过程;
2.https如何配置; 2.1 opessl申请证书; 2.2 配置https协议; 2.3 http协议强制跳转https
3.集群环境怎么配置https;
4.https相关 4.1 OSCP; 4.3 https优化; 4.4 如何替换证书;
#1.主页展示 http://yh.oldxu.net(提供网页浏览) #2.模拟登陆 http://yh.oldxu.net/login(相当于点击了登陆按钮) #3.登陆页面 https://star.oldxu.net (提供安全登陆)
1.准备安全的站点: [root@web02 ssl_key]# cat /etc/nginx/conf.d/star.oldxu.net.conf
server { listen 443 ssl; server_name star.oldxu.net;
ssl_certificate ssl_key/server.crt;
ssl_certificate_key ssl_key/server.key;
location / {
index index.html;
}
}
2.准备主页站点,然后配置location,当访问login,则跳转到新的站点;
1.https基本介绍 对称加密: 非对称加密: CA机构: 2.https实现过程: 握手阶段:非对称加密算法 传输阶段:对称加密算法 3.https如何配置;
upstream s_oldxu {
server 172.16.1.7:443;
}
server {
listen 443 ssl http2;
server_name _;
ssl_certificate key/path;
ssl_certificate_key key/path;
location / {
}
location /admin {
}
}
server {
listen 80;
server_name _;
return 302 https://$server_name$request_uri;
}
https优化方式: https相关场景: 模拟银行场景; OCSP查询(真实的公网服务器+真实的域名+真实的证书);
1.LNMP架构; 2.反向代理、负载均衡; 3.动静分离、uwsgi、rewrite 4.Https
作业: 搭建wordpress、搭建phpmyadmin+redis会话 6台机器: 1.对外提供两个域名: admin、blog 2.wordpress图片是共享的; 3.phpadmin的会话是通过redis保持; 4.至少wordpress需要提供https协议;
下周内容: 1.tomcat、jvm 2.keepalived 3.LVS 3.1) NAT 3.2) DR 4.Iptables 5.DNS 6.Haproxy