HTTPS(超文本安全传输协议)是现代网站常用的访问加密手段,使用范围非常广泛,各大银行网站,购物网站以及绝大部分涉及到核心商业利益的网站都使用了HTTPS协议;本文详细解释基于CentOS下使用Nginx搭建HTTPS网站。
首先需要的软件 KeyManager (亚洲诚信) >>>下载软件<<<
CentOS7 + Nginx
首先签发一个SSL证书,打开KeyManager,然后点击创建证书,证书类型为服务器证书,名称填写localhost(因为没有实际的域名,不太好指定证书),其他的默认,点击创建证书
导出证书,导出类型为Nginx(pem)
导出之后上传到服务器里面,找到Nginx的网站配置文件
#在网站配置文件下面添加一条server参数
server{
#监听443端口(HTTPS监听的是443端口HTTP监听的是80端口)
listen 80;
listen 443 ssl;
#服务器主机名
server_name localhost;
#证书文件位置,以你上传的位置为准
ssl_certificate /crt/localhost/localhost_chain.crt;
#证书密钥文件位置,以你上传的位置为准
ssl_certificate_key /crt/localhost/localhost_key.key;
#设置超时5分钟
ssl_session_timeout 5m;
#配置ssl_session缓存
ssl_session_cache shared:SSL:5m;
#配置SSL协议
ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
#配置加密套件(这里给个通用写法,因为加密类型比较多)OpenSSL标准
ssl_ciphers ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4;
ssl_prefer_server_ciphers on;
#配置强制HTTPS
if ($scheme = http) { #这一行的括号需要有空格,不然重启会报错
return 301 https://$host$request_uri;
}
location / {
root /www/html;
index index.html index.htm;
}
}
编辑完毕之后重启Nginx服务,如果遇到报错就使用
systemctl status nginx #查看文件哪里报错了
配置完重启不报错了那就测试功能是否正常
#使用curl命令请求本地页面,正确配置是301
curl http://localhost
#使用curl -k因为证书是自己签名的,所以一般情况下不受信用的
curl -k https://localhost
现在可以看见HTTPS curl之后的网页
评论