一般我们都需要先装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 /usr/local/ssl
mkdir myca
cp misc openssl.cnf myca -rf
cd myca

cd misc
./CA.sh -newca
#产生一个demoCA文件夹
cd demoCA
touch serial
echo 01 > serial

cp ../../openssl.cnf .
vim openssl.cnf +42
在42行:将dir = ./demoCA修改为 dir = ./

#产生CA自签名证书,这里产生的证书会自动同步到/etc/pki/CA目录下
openssl genrsa -out ./private/ca.key -rand ./private/.rnd -des 2048
openssl req -new -x509 -days 3650 -key ./private/ca.key -out ./private/ca.crt -config openssl.cnf
openssl x509 -in ./private/ca.crt -noout -text

#产生server的证书过程
openssl genrsa -out ./private/server.key 1024
openssl req -new -key ./private/server.key -out ./newcerts/server.csr -config openssl.cnf
//这一步如果产生错误,请看后面的解决方法
openssl ca -in ./newcerts/server.csr -cert ./private/ca.crt -keyfile ./private/ca.key -config openssl.cnf -policy policy_anything -out ./certs/server.crt
openssl x509 -in ./certs/server.crt -noout -text

#产生proxy的证书过程
openssl genrsa -out ./private/proxy.key 1024
//这步要是产生错误,请看后面的解决方法
openssl req -new -key ./private/proxy.key -out ./newcerts/proxy.csr -config openssl.cnf
openssl ca -in ./newcerts/proxy.csr -cert ./private/ca.crt -keyfile ./private/ca.key -config openssl.cnf -policy policy_anything -out ./certs/proxy.crt
openssl x509 -in ./certs/proxy.crt -noout -text

#产生client的证书过程
openssl genrsa -out ./private/client.key 1024
openssl req -new -key ./private/client.key -out ./newcerts/client.csr -config openssl.cnf
openssl ca -in ./newcerts/client.csr -cert ./private/ca.crt -keyfile ./private/ca.key -config openssl.cnf -policy policy_anything -out ./certs/client.crt
openssl x509 -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
vim /etc/pki/CA/index.txt.attr
8.重启
/usr/local/nginx/sbin/nginx –s reload
停止: ps –ef |grep nginx

killall 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           /etc/pki/CA/certs/server.crt; 
ssl_certificate_key  /etc/pki/CA/private/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
如果访问不了的话,使用setup命令关掉服务器的防火墙。

使用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;
}

Centos 6.5 下Nginx安装部署https服务器的更多相关文章

  1. centos 6.6 下yum安装部署zabbix2.4所遇到web安装页面无法打开的问题

    nginx配置zabbix下setup.php(web页面)无法显示,浏览器无法打开 1.检查系统是否安装nginx,以便解析html 已安装,安装方式为yum安装,可以解析其他页面 2.php没有完 ...

  2. CentOS 7 环境下 GitLab安装部署以及账号初始化

    1. 安装相关依赖 yum install curl policycoreutils openssh-server openssh-clients -y # 确保sshd启动(正常情况下, sshd是 ...

  3. CentOS 6.6下Cacti安装部署

    Cacti简介 本章结构 常见平台 常见的服务器监控软件 cacti,流量与性能监测为主----http://www.cacti.net/ nagios,服务与性能监测为主---http://www. ...

  4. Centos下 Nginx安装与配置

    网上找了好多资料.都很难找全,这里以这个目录为主,进行备注. Nginx是一款轻量级的网页服务器.反向代理服务器.相较于Apache.lighttpd具有占有内存少,稳定性高等优势.它最常的用途是提供 ...

  5. CentOS 6.5 下Nginx服务的安装与配置

    参考网站: http://www.cnblogs.com/zhuhongbao/archive/2013/06/04/3118061.html http://www.cnblogs.com/jilia ...

  6. [转]Centos 7 安装部署 GitLab 服务器

    Centos 7 安装部署 GitLab 服务器 转自:https://www.jianshu.com/p/79bfded68899 文前说明 作为码农中的一员,需要不断的学习,我工作之余将一些分析总 ...

  7. Nginx上部署HTTPS

    Nginx上部署HTTPS依赖OpenSSL库和包含文件,即须先安装好libssl-dev,且ln -s /usr/lib/x86_64-linux-gnu/libssl.so  /usr/lib/, ...

  8. Nginx上部署HTTPS + HTTP2

    Nginx上部署HTTPS依赖OpenSSL库和包含文件,即须先安装好libssl-dev(或者OpenSSL),且ln -s /usr/lib/x86_64-linux-gnu/libssl.so ...

  9. 高级运维(四):Nginx常见问题处理、安装部署Tomcat服务器、使用Tomcat部署虚拟主机

    一.Nginx常见问题处理 目标: 本案例要求对Nginx服务器进行适当优化,以提升服务器的处理性能: 1> 不显示Nginx软件版本号 2> 如果客户端访问服务器提示“Too many ...

随机推荐

  1. 最近两周我们接触到的两种线上抓娃娃机的技术实现方案(一种RTSP/一种RTMP)

    线上抓娃娃机需求 最近线上抓娃娃机的项目火爆了,陆陆续续几十款线上抓娃娃机上架,还有一大波正在开发上线中,各大视频云提供商都在蹭热度发布自己的线上抓娃娃机方案,综合了一下,目前线上抓娃娃机的视频需求无 ...

  2. Redis实现主从复制(转)

    一.Redis的Replication: 这里首先需要说明的是,在Redis中配置Master-Slave模式真是太简单了.相信在阅读完这篇Blog之后你也可以轻松做到.这里我们还是先列出一些理论性的 ...

  3. 流畅python学习笔记第十八章:使用asyncio包处理并发(一)

    首先是线程与协程的对比.在文中作者通过一个实例分别采用线程实现和asynchio包实现来比较两者的差别.在多线程的样例中,会用到join的方法,下面来介绍下join方法的使用. 知识点一:当一个进程启 ...

  4. SQL2005数据库放在C盘,结果C盘满了,怎么搞到D盘

    首先,你需要将自己所建立的数据库从SQL2005中分离出来,然后按照自己的存储路径找到自己所建数据库存储的位置,把它剪切到D盘就可以了.(mdf,ldf都应该考过去,自己建立路径存储就可以,再次打开的 ...

  5. java实现二叉树的构建以及3种遍历方法(转)

    转 原地址:http://ocaicai.iteye.com/blog/1047397 大二下学期学习数据结构的时候用C介绍过二叉树,但是当时热衷于java就没有怎么鸟二叉树,但是对二叉树的构建及遍历 ...

  6. (扫盲)jQuery extend()和jQuery.fn.extend()的区别

    1.认识jQuery extend()和jQuery.fn.extend() jQuery的API手册中,extend方法挂载在jQuery和jQuery.fn两个不同对象上方法,但在jQuery内部 ...

  7. 第一个Vert.x程序

    Jar依赖 <dependency> <groupId>io.vertx</groupId> <artifactId>vertx-core</ar ...

  8. RQNOJ 624 运动鞋:dp

    题目链接:https://www.rqnoj.cn/problem/624 题意: 小明有奖学金啦!所以他要去买运动鞋. 总共有n款鞋,分别属于t个品牌. 每款鞋的价格为c[i],在小明心目中的价值为 ...

  9. linux 进程学习笔记-进程信号sigal

    信号(或软中断)是在软件层次上对中断的一个模拟,其运行在“用户空间”,一个进程对另外一个或几个进程通过发送信号来实现异步通信.当接收进程接收到信号后,其可以注册一下处理函数来说对这些信号进行处理(也可 ...

  10. 解决 maps to localhost, but this does not map back to the address

    修改  /etc/ssh/ssh_config vim  /etc/ssh/ssh_config GSSAPIAuthentication no