首页 > 其他 > 详细

Centos 6.5 下Nginx安装部署https服务器

时间:2014-04-22 12:47:46      阅读:559      评论:0      收藏:0      [点我收藏+]

Centos 6.5下Nginx安装部署https服务器

一般我们都需要先装pcre, zlib,前者为了重写rewrite,后者为了gzip压缩。

1.选定源码目录

选定目录 /usr/local/

cd /usr/local/

2.安装PCRE库

cd /usr/local/

wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.21.tar.gz

tar -zxvf pcre-8.21.tar.gz

cd pcre-8.21

./configure

make

make install

 

3.安装zlib库

cd /usr/local/ 

wget http://zlib.net/zlib-1.2.8.tar.gz

tar -zxvf zlib-1.2.8.tar.gz cd zlib-1.2.8

./configure

make

make install

 

4.安装ssl

cd /usr/local/

wget http://www.openssl.org/source/openssl-1.0.1c.tar.gz

tar -zxvf openssl-1.0.1c.tar.gz

./config --prefix=/usr/local/ssl shared zlib-dynamicmake

make install

 

5.安装nginx

Nginx 一般有两个版本,分别是稳定版和开发版,您可以根据您的目的来选择这两个版本的其中一个,下面是把Nginx 安装到 /usr/local/nginx 目录下的详细步骤:

 

cd /usr/local/

wget http://nginx.org/download/nginx-1.2.8.tar.gz

tar -zxvf nginx-1.2.8.tar.gz

cd nginx-1.2.8  

这步是关键,如果不加的话在配置nginx.conf的时候会报类似这样的错误:

nginx: [emerg] unknown directive "ssl" in /usr/local/nginx/conf/vhost/nginx.conf:8 
nginx: configuration file /usr/local/nginx/conf/nginx.conf test failed 

./configure --user=nobody --group=nobody --prefix=/usr/local/nginx--with-http_stub_status_module --with-http_gzip_static_module--with-http_realip_module --with-http_sub_module --with-http_ssl_module

make

make install

 

--with-pcre=/usr/src/pcre-8.21 指的是pcre-8.21 的源码路径。

--with-zlib=/usr/src/zlib-1.2.7 指的是zlib-1.2.7 的源码路径。

 

6.启动

/usr/local/nginx/sbin/nginx –t //测试

/usr/local/nginx/sbin/nginx     //启动

提示错误:/usr/local/nginx/sbin/nginx: error while loading shared libraries:libpcre.so.1: cannot open shared object file: No such file or directory

解决方法:

确认已经安装PCRE: 

cd /lib  

ls *pcre*  

libpcre.so.0  libpcre.so.0.0.1  

find / -type f -name *libpcre.so.*   

添加软链接: 

ln -s /lib/libpcre.so.0.0.1 /lib/libpcre.so.1  

前面在一般的linux上可以解决此问题.

 

注: 在有的操作系统上面,安装pcre后,安装的位置为/usr/local/lib/*pcre*

在redhat 64位机器之上有这样的情况.

在redhat 64位机器上, nginx可能读取的pcre文件为/lib64/libpcre.so.1文件.

所以在改用下面的软连接: 

ln -s /usr/local/lib/libpcre.so.1 /lib64/ 

检查是否启动成功:

netstat -ano|grep 80 有结果输入说明启动成功

  

打开浏览器访问此机器的 IP,如果浏览器出现 Welcome to nginx! 则表示 Nginx 已经安装并运行成功。

7.生成证书:

这步需要找到openssl安装目录下的misc文件夹 和openssl.cnf文件

前面安装openssl时通过--prefix指定的安装目录是/usr/local/ssl

所以misc在 /usr/local/ssl/ssl 下 openssl.cnf 也在其中。

新建一个文件夹,myca 将两个文件拷贝到myca下

#生成工作目录产生CA凭证

ca.crt为自签名证书;
server.crt,server.key为服务器端的证书和私钥文件;
proxy.crt,proxy.key为代理服务器端的证书和私钥文件;
client.crt,client.key为客户端的证书和私钥文件。

具体步骤:

Cd myca

sudo cp /usr/local/ssl/ssl/misc -r ./

sudo cp /usr/local/ssl/ssl/openssl.cnf ./misc

Cd misc

CA.sh –newca

#产生一个demoCA文件夹

cd demoCA

#产生CA自签名证书
openssl genrsa -out ./private/ca.key -rand ./private/.rnd -des 2048
opensslreq -new -x509 -days 3650 -key ./private/ca.key -out ./private/ca.crt -configopenssl.cnf
opensslx509 -in ./private/ca.crt -noout –text

 

#产生server的证书过程
openssl genrsa -out ./private/server.key 1024
opensslreq -new -key ./private/server.key -out ./newcerts/server.csr -configopenssl.cnf

//这一步如果产生错误,请看后面的解决方法
opensslca -in ./newcerts/server.csr -cert ./private/ca.crt -keyfile ./private/ca.key-config openssl.cnf -policy policy_anything -out ./certs/server.crt
opensslx509 -in ./certs/server.crt -noout –text

 

#产生proxy的证书过程
openssl genrsa -out ./private/proxy.key 1024

//这步要是产生错误,请看后面的解决方法
opensslreq -new -key ./private/proxy.key -out ./newcerts/proxy.csr -config openssl.cnf
opensslca -in ./newcerts/proxy.csr -cert ./private/ca.crt -keyfile./private/ca.key-config openssl.cnf -policy policy_anything -out ./certs/proxy.crt
opensslx509 -in ./certs/proxy.crt -noout –text

 

#产生client的证书过程
openssl genrsa -out ./private/client.key 1024
opensslreq -new -key ./private/client.key -out ./newcerts/client.csr -configopenssl.cnf
opensslca -in ./newcerts/client.csr -cert ./private/ca.crt -keyfile ./private/ca.key-config openssl.cnf -policy policy_anything -out ./certs/client.crt
opensslx509 -in ./certs/client.crt -noout -text

 

#产生一般错误的解决方法

出现:I am unable to access the ./demoCA/newcertsdirectory

      ./demoCA/newcerts:Nosuch file or directory

解决:修改openssl.cnf

42行:dir= ./demoCA修改为 dir= ./

出现:failed to update database

         TXT_DB errornumber 2

解决:修改index.txt.attr

unique_subject = yes修改为 unique_subject= no

 

8.重启

/usr/local/nginx/sbin/nginx –s reload

停止: ps –ef |grep nginx

Kill –QUIT 进程号

Kill –TERM 进程

Pkill –q nginx

 

9.修改配置文件

cd /usr/local/nginx/conf

vi nginx.conf

============================nginx.conf==========================

#user  nobody;

worker_processes 1;

 

events {

   worker_connections  1024;

}

 

http {

    include       mime.types;

   default_type application/octet-stream;

 

    sendfile        on;

 

   keepalive_timeout  65;

 

    server {

#本机的ip地址:https的端口号443

     listen               192.168.62.128:443;

     ssl                      on;

    #要使用生成的服务器的证书和key,使用绝对路径

   ssl_certificate     /usr/local/nginx/conf/server.crt;

   ssl_certificate_key /usr/local/nginx/conf/server.key;

 

   ssl_session_timeout  5m;

 

   ssl_protocols  SSLv2 SSLv3 TLSv1;

   ssl_ciphers  HIGH:!aNULL:!MD5;

   ssl_prefer_server_ciphers   on;

    #定义在浏览器里输入的网址

     server_name        www.mynginx20140416.com;

 

    location / {

          root   /nginxhome;

#/nginxhome 下的两个文件,index.html 和index.htm 里面是连接后显示的内容

          index  index.html index.htm;

    }

 

    location =/50x.html {

        root html;

    }

    }

 

}

 

10.配置完成后重启服务器

本机直接输入定义的https://www.mynginx20140416.com

其他机器的浏览器输入:ip地址:443

 

 

使用curl 测试

Curl –k https://192.168.62.128:443

显示你在/nginxhome目录下的index.html中输入的内容证明搭建成功了

 

向服务器传送文件

Curl –T  localfile –k https://192.168.62.128:443

如果出现 

<html>

<head><title>405Not Allowed</title></head>

<bodybgcolor="white">

<center><h1>405Not Allowed</h1></center>

<hr><center>nginx/1.1.19</center>

</body>

</html>

 

说明需要加入PUT GET 等方法

在安装编译nginx时加入 --with-http_dav_module这个模块

./configure --with-http_dav_module

在/usr/local/nginx/conf/nginx.conf中修改

location / {

  root     /var/www;

  dav_methods PUT;

}

 

参考:http://www.server110.com/nginx/201310/2114.html

Centos 6.5 下Nginx安装部署https服务器,布布扣,bubuko.com

Centos 6.5 下Nginx安装部署https服务器

原文:http://www.cnblogs.com/etangyushan/p/3679461.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!