Fork me on GitHub

Nginx配置ssl证书实现https访问


基于HTTP协议,通过SSL或TLS提供加密处理数据、验证对方身份以及数据完整性保护。更通俗地说可以样网站不现实“不安全”字样。

1. 下载ssl证书

  • 申请ssl证书地办法有很多可以去买,也可以在腾讯云百度云之类地平台免费申请。
  • 申请好之后就在ssl证书管理页面下载证书。
  • 解压出来就是这些东西

2. 把证书上传到服务器

  • 不会地可以在gitbash中使用这条命令来上传
    1
    2
    3
    4
    5
    6
    7
    #对拷文件夹下所有文件 (不包括文件夹本身)
    scp /本地文件/ 用户名@地址:/目标文件夹/
    #对拷文件夹 (包括文件夹本身)
    scp -r /本地文件/ 用户名@地址:/目标文件夹/

    #本例中使用的目标文件夹是
    scp /本地文件/ 用户名@地址:/etc/ssl/
    点击查看更多scp命令内容

3. 安装和配置Nginx

3.1 安装Nginx

自行参考本站另外一篇文章 《Nginx搭建hexo博客》

3.2 配置(以本站为例)

  • 仅支持https访问。
  • 仅能使用特定域名访问。
  • 仅有本站才能引用该网站的静态文件即防盗链。
在Nginx目录下的conf.d文件夹内添加一个新的配置文件XXX.conf 写入以下内容
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
server {
listen 443;
server_name lee1224-1257254543.file.myqcloud.com; # 改为绑定证书的域名
ssl on;
ssl_certificate /etc/ssl/imglee1224/1_lee1224-1257254543.file.myqcloud.com_bundle.crt; # 改为自己申请得到的 crt 文件的名称
ssl_certificate_key /etc/ssl/imglee1224/2_lee1224-1257254543.file.myqcloud.com.key; # 改为自己申请得到的 key 文件的名称
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
ssl_prefer_server_ciphers on;
location / {
root /var/www/blogIMG; # 网站根目录
index avatar.png;
valid_referers none blocked *.lee1224.com;
if ($invalid_referer) { # 当非指定域名引用时指向下面的图片,不让别人引用
rewrite ^/ https://gss1.bdstatic.com/9vo3dSag_xI4khGkpoWK1HF6hhy/baike/c0%3Dbaike272%2C5%2C5%2C272%2C90/sign=3107ac963fadcbef15397654cdc645b8/a6efce1b9d16fdfa4ef453bcba8f8c5495ee7bcc.jpg;
}
}
}
  • 把Nginx目录下的Nginx.conf文件中的server{}内容全部注释 进引用 新添加的XXX.conf文件
  • 重启Nginx:
    1
    service nginx restart

搞定!


本文结束啦 感谢您阅读
路漫漫其修远兮 吾将上下而求索