LNMP进阶之SSL安全证书部署 1332次阅读 Centos • 学习归纳 2022-07-23 注:本文在原创文章https://blog.gdsdxy.fun/index.php/archives/93.html 基础上接着讲解 #LNMP进阶之SSL安全证书部署 ## 什么是SSL安全证书? SSL证书是一种数字证书,主要是给予网站HTTPS安全协议加密传输与信任的功能。 网站实现加密传输 用户通过http协议访问网站时,浏览器和服务器之间是明文传输,这就意味着用户填写的密码、账号、交易记录等机密信息都是明文,随时可能被泄露、窃取、篡改,被黑客加以利用。 网站安装SSL证书后,使用https加密协议访问网站,可激活客户端浏览器到网站服务器之间的"SSL加密通道"(SSL协议),实现高强度双向加密传输,防止传输数据被泄露或篡改。 ## 怎么区分网站有没有部署SSL证书? 最直接的例子,查看浏览器网址栏左边的提示 ![img](/doc/10https/ssl.assets/clip_image002.png) 这是没有部署证书的例子 ![img](/doc/10https/ssl.assets/clip_image004.png) 这是有证书但不受信任的例子(如自签证书、电脑时间不对等都有可能导致) ![img](/doc/10https/ssl.assets/clip_image006.png) 这是有证书且证书有效的例子 ## 部署SSL证书需要什么? 一台正常的nginx云服务器 一个固定的公网IP 一个正常解析的域名 ## 怎么部署SSL证书? 我们使用上篇文章(vhosts)的a.gdsdxy.fun网页做例子。 首先我们需要先为该域名申请ssl证书。一般域名提供商都有提供申请的免费证书的渠道。 我这里使用腾讯云举例 ![img](/doc/10https/ssl.assets/clip_image008.png) 搜索SSL 证书 ![img](/doc/10https/ssl.assets/clip_image010.png) 点击我的证书 ![img](/doc/10https/ssl.assets/clip_image012.png) 点击申请免费证书 ![img](/doc/10https/ssl.assets/clip_image014.png) 免费证书只能选择亚洲诚信(ps:免费证书有效期一年,到期前需要重新签发,重新配置) ![img](/doc/10https/ssl.assets/clip_image016.png) 证书绑定域名需要填写完全域名。如:a.gdsdxy.fun ![img](/doc/10https/ssl.assets/clip_image018.png) 选择DNS验证 ![img](/doc/10https/ssl.assets/clip_image020.png) 走到这里,我们去到DNS解析侧 ![img](/doc/10https/ssl.assets/clip_image022.png) 按照上图的要求,我们创建一个CNAME解析,把数据都填写进去 ![img](/doc/10https/ssl.assets/clip_image024.png) 保存生效 ![img](/doc/10https/ssl.assets/clip_image025.png) 回到SSL证书点击查看域名验证状态,看到此提示后稍等几分钟 ![img](/doc/10https/ssl.assets/clip_image026.png) 即可收到此通知 ![img](/doc/10https/ssl.assets/clip_image028.png) 回到我的证书页面 ![img](/doc/10https/ssl.assets/clip_image030.png) 因为我们是LNMP服务器,使用Nginx,所以下载Nginx格式的证书与根证书 ![img](/doc/10https/ssl.assets/clip_image032.png) 你应该会得到这两个压缩文件 ![img](/doc/10https/ssl.assets/clip_image034.png) 解压得到两个文件夹下的如上文件 ## 创建证书与密钥文件 ### 创建证书 ![img](/doc/10https/ssl.assets/clip_image036.png) 回到服务器内,进入到/etc/nginx配置目录下 我们创建一个cert目录,专门用于存放SSL证书 ![img](/doc/10https/ssl.assets/clip_image037.png) 再在cert目录下创建任意命名的目录用以存放证书(我这里使用了域名做目录名字) ![img](/doc/10https/ssl.assets/clip_image038.png) 在a.gdsdxy.fun目录下,我们首先创建PEM证书文件,名字随意,注意以.pem结尾 PEM证书的格式为域名证书+根证书 ![img](/doc/10https/ssl.assets/clip_image040.png) 打开我们下载好的域名证书文件夹,找到.crt结尾的证书文件,右键以文本文档方式打开 ![img](/doc/10https/ssl.assets/clip_image042.png) 如无意外,我们打开应该是这样的,我们把全文复制(包括开始的虚线行和结尾的虚线行,ctrl+A) ![img](/doc/10https/ssl.assets/clip_image044.png) 插入到a.pem来,还没完,先回个车换行 ![img](/doc/10https/ssl.assets/clip_image046.png) 找到我们下载的根证书,同样右键以文本文档方式打开 ![img](/doc/10https/ssl.assets/clip_image048.png) 同样的全选复制 ![img](/doc/10https/ssl.assets/clip_image049.png) 黏贴到我们换过行的a.pem文件中,保存并退出,证书部分完成。 ### 创建密钥文件 ![img](/doc/10https/ssl.assets/clip_image050.png) 接着在a.gdsdxy.fun目录中创建任意名字.key文件(注意要以.key结尾) ![img](/doc/10https/ssl.assets/clip_image052.png) 打开我们下载好的域名证书文件夹,找到.key结尾的证书文件,同样右键以文本文档方式打开 ![img](/doc/10https/ssl.assets/clip_image054.png) 同样复制全部内容(Ctrl+A) ![img](/doc/10https/ssl.assets/clip_image055.png) 插入到a.key内,保存并退出,证书与密钥文件创建完毕 ## 修改nginx相应网站配置文件 ![img](/doc/10https/ssl.assets/clip_image056.png) 进入nginx配置文件目录 ![img](/doc/10https/ssl.assets/clip_image057.png) ![image-20220723172101819](/doc/10https/ssl.assets/image-20220723172101819.png) 按此格式修改配置文件 ``` server { #将80端口服务独立出来 listen 80; #监听80端口 return 301 https://a.gdsdxy.fun$request_uri;#当访问80端口的时候,返回301重定向至https } server { listen 443 ssl http2; #监听https默认端口443,开启SSL证书和http2支持 server_name a.gdsdxy.fun; #修改为vhosts域名,https必须有域名才能申请证书 ssl_certificate /etc/nginx/cert/a.gdsdxy.fun/a.pem; #指定证书文件的绝对路径 ssl_certificate_key /etc/nginx/cert/a.gdsdxy.fun/a.key; #指定密钥文件的绝对路径 ssl_session_timeout 5m; ssl_protocols TLSv1.2 TLSv1.3;#支持的TLS版本 ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE; ssl_prefer_server_ciphers on; root /usr/share/nginx/html/web1;#指定网站的根目录,如果配置vhosts一定要注意 index index.php index.html index.htm; #设置网站的主页顺序,因为我们是php网站,所以把.php加在最前面 ``` 修改a.gdsdxy.fun网站的配置文件web1.conf $$ Ps:301转向 (或叫301重定向,301跳转)是当用户或搜索引擎向网站服务器发出浏览请求时,服务器返回的HTTP数据流中头信息 (header)中的状态码的一种,表示本网页永久性转移到另一个地址。 301重定向主要是将需要转移的网址重定向另一个新的网址上,并且是永久性转移。 $$ 最终结果如上,保存并退出 ![img](/doc/10https/ssl.assets/clip_image060.png) 重启nginx ## 测试 ![img](/doc/10https/ssl.assets/clip_image062.png) ![img](/doc/10https/ssl.assets/clip_image064.png) 浏览器输入a.gdsdxy.fun,直接解析到了https,查看SSL证书有效,证书部署成功! 最后一次更新于2022-07-23 LNMP 网页服务器
0 条评论