封尘网

让学习成为一种习惯!

简单快捷给全站加把锁Nginx添加SSl认证

简单快捷给全站加把锁:Nginx添加SSl认证

https 是 http over ssl(Secure Socket Layer),简单讲就是 http 的安全版本,在 http 的基础上通过传输加密和身份认证保证了传输过程中的安全性。你通常访问的网站大部分都是 http 的,最简单的方法可以看看网址是以 http:// 开头还是https:// 开头;

最近看到大家的博客都上了SSL,心里着急啊,于是买阿里云,备案。。。只为了加把锁乐一下;

以下记录大致过程:

创建证书==>认证域名(根据提示上传文件到服务器认证)==>域名认证通过后====>下载证书[上传到服务器]

ssl证书的获取:
网站:https://www.sslforfree.com/
到网上注册一个帐号,根据提示获取一个证书文件,然后安装到自己电脑里;重新打开浏览器时,再打开网页即可登陆认证;才可以做接下来的操作;

1、输入自己的域名,点击右边的按钮,生成证书;

2、选择手动上传文件验证,当然你也可以选择左边的自动上传,需要验证你的FTP帐号密码;

3、这里出现了两个文件,和两个域名,一个不带www的,默认情况下它会生成两个,最好把两个域名都指向到服务器;这里只需要上传其中一个文件即可。同时需要注意,这里要路径问题,要在服务器网站根目录下创建目录:.well-known/acme-challenge/ 把文件上传到此目录下,点击验证即可;当然也可以自己制作一个CSR密钥;这里我直接使用网站生成的;验证通过后可以把上面的目录删除;

接下来是Nginx的配置:

虚拟主机配置:

server {
  listen       80;
  server_name  www.58jb.com;
  return 301 https://$server_name$request_uri;
}

server {
  # SSL Configuration
  listen 443 ssl default_server;
  ssl on;
  ssl_certificate /etc/nginx/ssl/cert_chain.crt;
  ssl_certificate_key /etc/nginx/ssl/private.key;
  access_log /var/log/nginx/58jb.com.access.log;
  error_log /var/log/nginx/58jb.com.error.log;
  location / {

  root /usr/html;
  index index.html index.htm index.php;
  }
}

保存配置文件,注意上面的证书和密钥的路径;

mkdir -p /etc/nginx/ssl      #创建相应的目录,并把刚才验证后下载回来的证书上传到此;

解压文件:sslforfree .zip

unzip sslforfree.zip
解压后有三个文件:
ca_bundle.crt       #根证书文件
certificate.crt     #客户端认证的证书
private.key         #私钥文件
cert_chain.crt      #此文件是由根证书和客户端证书合并而来;客户端证书在前,根证书在后;

确保文件名,路径正确后,验证Nginx配置:nginx -t
最后要重启一下Nginx服务,不然无法生效;

提醒:本文最后更新于 1109 天前,文中所描述的信息可能已发生改变,请谨慎使用。