Nginx安装和证书配置

一  Nginx的安装
Nginx的安装依赖于以下三个包,意思就是在安装Nginx之前首先必须安装一下的三个包,注意安装顺序如下:
1 SSL功能需要openssl库,直接通过yum安装: #yum install openssl
2 gzip模块需要zlib库,直接通过yum安装: #yum install zlib
3 rewrite模块需要pcre库,直接通过yum安装: #yum install pcre
可能有的系统安装的时候直接安装了,不用上述安装
2、安装Nginx依赖项和Nginx
1 使用yum安装nginx需要包括Nginx的库,安装Nginx的库
#rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
       可能环境不同可能不需要安装。
2 使用下面命令安装nginx
#yum install nginx
3 启动Nginx
#service nginx start
二  证书下载
去阿里云下载相关的免费证书。在阿里云控制台-产品与服务-安全(云盾)-SSL 证书(应用安全),点击购买证书,根据不同的服务器类型下载不同类型的证书。
此次下载的是nginx证书。
三  配置ca证书
1,nginx的安装目录为:/etc/nginx/。进入目录,增加cert/文件夹,把刚刚下载的两个文件上传到cert/文件夹中。
2,在/etc/nginx/sites-enabled/下,增加csales.jiaxxxxx.tv文件。/etc/nginx/sites-enabled/目录在centos安装的时候没有,需要手工创建。在ubuntu进行安装的时候默认已创建
内容如下:
说明:下面的配置是对443端口和80端口进行监听,443端口要启用ssl。
笔者创建了一个csales.jiaxxxxx.tv/的文件夹,专门存放来自这个域名的请求以示区分。
csales.jiaxxxxx.tv/文件夹下增加一个index.html文件,里面仅仅写了一行<h1>welcome。
vi  /etc/nginx/sites-enabled/csales.jiaxxxxx.tv  内容如下:
server {
    listen 443;
    server_name csales.jiaxxxxx.tv; // 你的域名,不能解析需要在/etc/hosts文件加入,需要跟您的证书域名一直
    ssl on;
    root /var/www/csales.jiaxxxxx.tv;  // 前台文件存放文件夹,可改成别的
    index index.html index.htm; // 上面配置的文件夹里面的index.html
    ssl_certificate  cert/fullchain11.pem; // 改成你的证书的名字
    ssl_certificate_key cert/privkey11.pem; // 你的证书的名字
    ssl_session_timeout 5m;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_prefer_server_ciphers on;
    location / {
        index index.html index.htm;
    }
}
server {
    listen 80;
    server_name csales.jiaxxxxx.tv; // 你的域名
    rewrite ^(.*)$ https://$host$1 permanent; // 把http的域名请求转成https
}
配置完成后,检查一下nginx配置文件是否可用,有successful表示可用。
$ nginx -t // 检查nginx配置文件
配置正确后,重新加载配置文件使配置生效:
$ nginx -s reload // 使配置生效
至此,nginx的https访问就完成了,并且通过rewrite方式把所有http请求也转成了https请求,更加安全。
如需重启nginx,用以下命令:
$ service nginx stop // 停止
$ service nginx start // 启动
$ service nginx restart // 重启
四,测试效果
输入http://csales.jiaxxxxx.tv;/也会自动跳转至https页面。
五 Nginx报错处理
Nginx报错403 forbidden (13: Permission denied)的解决办法
查看/var/log/nginx/error.log日志显示:xxx 403 forbidden (13: Permission denied)错误。
引起nginx 403 forbidden通常是三种情况:一是缺少索引文件,二是权限问题,三是SELinux状态。
1、缺少index.html或者index.php文件,就是配置文件中index index.html index.htm这行中的指定的文件。
如果在/var/www/csales.jiaxxxxx.tv下面没有index.php,index.html的时候,直接访问域名,找不到文件,会报403 forbidden。
2、权限问题,如果nginx没有web目录的操作权限,也会出现403错误。
解决办法:修改web目录的读写权限,或者是把nginx的启动用户改成目录的所属用户,重启Nginx即可解决
chmod -R 755 / var/www/csales.jiaxxxxx.tv
3、SELinux设置为开启状态(enabled)的原因
首先查看本机SELinux的开启状态,如果SELinux status参数为enabled即为开启状态
/usr/sbin/sestatus -v
或者使用getenforce命令检查,找到原因了,如何关闭 SELinux 呢
临时关闭(不用重启)
setenforce 0
修改配置文件 /etc/ selinux/config,将SELINUX=enforcing改为SELINUX=disabled
六  其他错误
1. 没有出来您配置的页面
修改配置文件/etc/nginx/nginx.conf 引入配置文件,增加如下一行
include /etc/nginx/sites-enabled/*;
去掉配置文件nginx.conf中的 server  {   }部分
2   证书到期
证书到期后会出现此网站不安全或者证书到期的提示。进行如下的处理
检查证书是否到期
 [root@storage01 cert]#  openssl x509 -in fullchain11.pem  -noout -dates
notBefore=Mar  3 15:33:55 2019 GMT  证书开始日期
notAfter=Jun  1 15:33:55 2019 GMT   证书到期日志
重新生产证书进行替换。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章