01、Http和Https认识
HTTP 协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取Web浏览器和网站服务器之间的传输报文,就可以直接读懂其中的信息,因此,HTTP协议不适合传输一些敏感信息,比如:信用卡号、密码等支付信息。
HTTPS(Hypertext Transfer Protocol Secure:超文本传输安全协议) 是一种透过计算机网络进行安全通信的传输协议。HTTPS经由HTTP进行通信,**但利用SSL/TLS来加密数据包。**HTTPS开发的主要目的,是提供对网站服务器的身份认证,保护交换数据的隐私与完整。
02、Https的应用场景
1、当然考虑网站数据传递的安全性
2、基于前后端分离开发方式,如微信小程序,APP开发,IOS开发。等这些移动端应用开发,比如:IOS苹果软件开发,如果说你的软件要上家到苹果应用市场,那么你的服务器接口必须是:https。或者微信小程序:在真是的项目发布的,如果不是https的接口你也是通不过。
03、Https和Http监听的端口
http 监听的端口:80
https监听的端口:443
04、Https实现步骤
1、你必须要有个域名
2、并且要有个服务器 (提供ip)
3、并且服务器ip和你的域名要进行解析
4、免费领取一个ssl安全证书
5、把域名和ssl安全证书进行安全绑定授权
6、授权成功以后,然后把证书安装到nginx中
05、购买域名
万网:https://wanwang.aliyun.com/
购买成功后。进入阿里云【控制面板中】,找到【域名】配置,即可看到自己刚才购买的域名
06、域名备案
购买域名一定要备案才能进行使用,否则你是不能去解析和映射IP服务器,备案地址:
https://beian.aliyun.com/?spm=5176.100251.top-nav.dicp.22f14f15f2xBZ5
如果还不明白,多问问客服和提交工单
注意:备案需要域名提前做好实名认证,认证完后的2-3天才可备案。
07、购买阿里云服务器
地址:
https://ecs-buy.aliyun.com/wizard/#/prepay/cn-shanghai?fromDomain=true
如果是学习用的话推荐买共享型即可,企业的话推荐计算型,根据自己需要而定,系统推荐使用CentOS系统
购买完之后、即可在自己的控制台看见自己购买的服务器实例的IP
08、域名和IP的绑定
在控制台点击域名之后 选择需要的域名进行解析
一般建议:主域名 www.xxx.com , xxx.com
一般建议:API的域名,api.xxx.com
点击添加记录
一个域名 可以通过配置不同的二级域名去映射不同的服务器,这都是可以的。
09、开放服务端口
如果是单机部署多应用的话,开放80和443端口即可
这里和直接在linux通过命令去开放端口不同 需要在安全组里面配置
进去之后直接点击快速添加勾选你需要开放的端口
10、申请SSL证书
点击创建证书
11、安装nginx
nginx下载:http://nginx.org/en/download.html
01、创建nginx服务器目录
mkdir -p /www/yangzihao/nginx
cd /www/yangzihao/nginx
02、下载安装
wget http://nginx.org/download/nginx-1.20.1.tar.gz
03、安装编译工具及库文件
yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel
04、解压nginx
tar -zxvf nginx-1.20.1.tar.gz
05、创建临时目录
mkdir -p /var/temp/nginx
06、进入安装包目录
cd nginx-1.20.1
07、编译安装 (自定义配置)
./configure \
--prefix=/usr/local/nginx \
--pid-path=/var/run/nginx.pid \
--lock-path=/var/lock/nginx.lock \
--error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log \
--with-http_gzip_static_module \
--http-client-body-temp-path=/var/temp/nginx/client \
--http-proxy-temp-path=/var/temp/nginx/proxy \
--http-fastcgi-temp-path=/var/temp/nginx/fastgi \
--http-uwsgi-temp-path=/var/temp/nginx/uwsgi \
--http-scgi-temp-path=/var/temp/nginx/scgi \
--with-http_stub_status_module \
--with-http_ssl_module \
--with-http_stub_status_module
记住:–with-http_ssl_module \ 尤为重要
安装以后的目录信息
08、make编译
make
09、安装
make install
10、进入sbin目录启动nginx
cd /usr/local/nginx/sbin
nginx 启动命令:
./nginx 启动
./nginx -s stop 停止
./nginx -s quit 安全退出
./nginx -s reload 重新加载配置文件
ps aux|grep nginx 查看nginx的进程
访问这个ip地址显示如下 说明nginx启动成功
./nginx -V 可显示nginx安装的一些信息
11、配置nginx的环境变量
vim /etc/profile
在文件的尾部追加
export NGINX_HOME=/usr/local/nginx
export PATH=$NGINX_HOME/sbin:$PATH
重启配置文件
source /etc/profile
配置环境变量的好处
12、SSL证书的下载和上传
SSL证书的下载
SSl证书的上传
在nginx的conf目录下新建一个cert目录,并将这两个文件下载SSL证书文件上传到cert目录下
额外说明一下关于nginx
nginx 可以有多个配置文件 只需在主nginx.conf配置文件中将其他配置文件引用即可
改过配置文件记得从起 nginx -s reload
13、 nginx和SSL配置
直接可以看官方文档 写的即为详细 直接复制过来即可
连接地址
#以下属性中,以ssl开头的属性表示与证书配置有关。
server {
listen 443 ssl;
#配置HTTPS的默认访问端口为443。
#如果未在此处配置HTTPS的默认访问端口,可能会造成Nginx无法启动。
#如果您使用Nginx 1.15.0及以上版本,请使用listen 443 ssl代替listen 443和ssl on。
server_name yourdomain.com; #需要将yourdomain.com替换成证书绑定的域名。
root html;
index index.html index.htm;
ssl_certificate cert/cert-file-name.pem; #需要将cert-file-name.pem替换成已上传的证书文件的名称。
ssl_certificate_key cert/cert-file-name.key; #需要将cert-file-name.key替换成已上传的证书密钥文件的名称。
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
#表示使用的加密套件的类型。
ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #表示使用的TLS协议的类型。
ssl_prefer_server_ciphers on;
location / {
root html; #站点目录。
index index.html index.htm;
}
}
直接复制到自己的配置文件中稍作修改
如果需要请求http时自动跳转到https可以直接加上这个代码块
14、Nginx配置多个Https服务
每个域名有每个域名对应的SSL证书
在配置一个server代码块即可
域名访问测试 后面带有锁的标志说明是安全的
15、负载均衡项目部署
准备一个springboot项目打成包
分别跑三个端口进行测试
配置负载均衡
重启nginx
nginx -s reload
最终测试
完结撒花!!!就是这么简单
16、后记
生活朗朗,万物可爱,人间值得,未来可期。加油!