简单快捷给全站加把锁: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的配置:
 
 
  1. 虚拟主机配置: 
  2. server { 
  3.   listen       80; 
  4.   server_name  www.58jb.com; 
  5.   return 301 https://$server_name$request_uri; 
  6.  
  7. server { 
  8.   # SSL Configuration 
  9.   listen 443 ssl default_server; 
  10.   ssl on; 
  11.   ssl_certificate /etc/nginx/ssl/cert_chain.crt; 
  12.   ssl_certificate_key /etc/nginx/ssl/private.key; 
  13.   access_log /var/log/nginx/58jb.com.access.log; 
  14.   error_log /var/log/nginx/58jb.com.error.log; 
  15.   location / { 
  16.  
  17.   root /usr/html; 
  18.   index index.html index.htm index.php; 
  19.   } 
保存配置文件,注意上面的证书和密钥的路径;
 
  1. mkdir -p /etc/nginx/ssl  #创建相应的目录,并把刚才验证后下载回来的证书上传到此;
解压文件:sslforfree .zip
 
 
  1. unzip sslforfree.zip 
  2. 解压后有三个文件: 
  3. ca_bundle.crt       #根证书文件 
  4. certificate.crt     #客户端认证的证书 
  5. private.key         #私钥文件 
  6. cert_chain.crt      #此文件是由根证书和客户端证书合并而来;客户端证书在前,根证书在后; 
 
确保文件名,路径正确后,验证Nginx配置:nginx -t 
最后要重启一下Nginx服务,不然无法生效;