配置HTTPS

什么是https?

HTTP:是互联网上应用最为广泛的一种网络协议,是一个客户端和服务器端请求和应答的标准(TCP),用于从WWW服务器传输超文本到本地浏览器的传输协议,它可以使浏览器更加高效,使网络传输减少。

HTTPS:全称:Hyper Text Transfer Protocol over Secure Socket Layer,则是以安全为目标的HTTP通道,简单讲是HTTP的安全版,即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。

HTTPS协议的主要作用可以分为两种:一种是建立一个信息安全通道,来保证数据传输的安全;另一种就是确认网站的真实性。
1.1安装nginx
yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel wget pcre pcre-devel
wget http://nginx.org/download/nginx-1.14.2.tar.gz
tar -zxvf nginx-1.14.2.tar.gz
cd nginx-1.14.2
./configure --with-http_stub_status_module --with-http_ssl_module
make
make install
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
1.2检查Nginx的SSL模块
/usr/local/nginx/sbin/nginx -V
在这里插入图片描述
1.3准备私钥和证书
创建私钥
cd /usr/local/nginx
mkdir -p ssl
cd ssl/
openssl genrsa -des3 -out server.key 1024
在这里插入图片描述

签发证书
openssl req -new -key server.key -out server.csr
在这里插入图片描述
删除私钥口令
cd /usr/local/nginx/ssl
cp server.key server.key.ori
openssl rsa -in server.key.ori -out server.key
在这里插入图片描述
生成使用签名请求证书和私钥生成自签证书
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
在这里插入图片描述
1.4开启Nginx SSL
创建虚拟主机子目录
mkdir -p /usr/local/nginx/conf/conf.d
在这里插入图片描述
精简主配置文件
cat >/usr/local/nginx/conf/nginx.conf<<EOF
user nobody;
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
include conf.d/*.conf;
}
EOF
在这里插入图片描述

启动nginx,并查看进程
/usr/local/nginx/sbin/nginx

创建虚拟主机子配置文件
cat >/usr/local/nginx/conf/conf.d/hack.conf<<EOF
server {
listen 443 ssl;
server_name www.hack.com;
ssl on;
ssl_certificate /usr/local/nginx/ssl/server.crt;
ssl_certificate_key /usr/local/nginx/ssl/server.key;

location / {
#定义站点目录
    root   /usr/local/nginx/html;
    index index.php  index.html index.htm;
}

}
EOF
在这里插入图片描述
重新加载配置文件
/usr/local/nginx/sbin/nginx -t
/usr/local/nginx/sbin/nginx -s reload
在这里插入图片描述
绑定windows的hosts:
10.0.0.41 www.hack.com
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
*上传 hack.html 到/usr/local/nginx/html目录。
在这里插入图片描述
然后谷歌浏览器访问:https://www.hack.com/hack.html
在这里插入图片描述
此时,你会发现,http://www.hack.com/hack.html,浏览器访问不了了,需要进行rewrite跳转。
1.5rewrite跳转
以上配置有个不好的地方,如果用户忘了使用https或者443端口,那么网站将无法访问,因此需要将80端口的访问转到443端口并使用ssl加密访问。只需要增加一个server段,使用301永久重定向。
cat >/usr/local/nginx/conf/conf.d/hack.conf<<\EOF
server {
listen 80;
server_name www.hack.com;
rewrite ^(.
) https://$server_name$1 permanent;
}

server {
listen 443 ssl;
server_name www.hack.com;
ssl on;
ssl_certificate /usr/local/nginx/ssl/server.crt;
ssl_certificate_key /usr/local/nginx/ssl/server.key;

location / {
#定义站点目录
    root   /usr/local/nginx/html;
    index index.php  index.html index.htm;
}

}
EOF
在这里插入图片描述
重新加载配置文件
/usr/local/nginx/sbin/nginx -t
/usr/local/nginx/sbin/nginx -s reload
在这里插入图片描述
这时,浏览器访问 http://www.hack.com/hack.html,nginx会将请求跳转到 https://www.hack.com/hack.html,详细可以查看nginx日志。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值