nginx使用ssl模块配置支持HTTPS访问

默认情况下ssl模块并未被安装,如果要使用该模块则需要在编译nginx时指定–with-http_ssl_module参数.

需求:
做一个网站域名为 www.localhost.cn 要求通过https://www.localhost.cn进行访问.

10.10.100.8 www.localhost.cn

实验步骤:

1.首先确保机器上安装了openssl和openssl-devel

#yum install openssl
#yum install openssl-devel

2.创建服务器私钥,命令会让你输入一个口令:

openssl genrsa -des3 -out server.key 1024													//生成私钥
#因为以后要给nginx使用。每次reload nginx配置时候都要你验证这个PAM密码的.由于生成时候必须输入密码,你可以输入后 再删掉。

3.创建签名请求的证书(CSR):

openssl req -new -key server.key -out server.csr								//生成证书颁发机构,用于颁发公钥

4.在加载SSL支持的Nginx并使用上述私钥时除去必须的口令:

cp server.key server.key.org
openssl rsa -in server.key.org -out server.key									//除去密码以便reload询问时不需要密码

5.配置nginx
最后标记证书使用上述私钥和CSR:

openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt

6.修改Nginx配置文件,让其包含新标记的证书和私钥:

#vim /usr/local/nginx/conf/nginx.conf
http {

        include server/*.cn;
}

7.修改Nginx配置文件,让其包含新标记的证书和私钥:

#vim /usr/local/nginx/server/www.localhost.cn
server {
        listen       443;  																		//监听端口为443
        server_name  www.localhost.cn; 

        ssl                  on;  		          //开启ssl
        ssl_certificate      /etc/pki/tls/certs/server.crt;  	 //证书位置
        ssl_certificate_key  /etc/pki/tls/certs/server.key;  	 //私钥位置
        ssl_session_timeout  5m;
        ssl_protocols  SSLv2 SSLv3 TLSv1;  		     //指定密码为openssl支持的格式
        ssl_ciphers  HIGH:!aNULL:!MD5; 				//密码加密方式
        ssl_prefer_server_ciphers   on; 			//依赖SSLv3和TLSv1协议的服务器密码将优先于客户端密码 

        location / {
            root   html;    					//根目录的相对位置
            index  index.html index.htm;
        }
    }

8.启动nginx服务器.

#/usr/local/nginx/sbin/nginx -s reload //如果环境允许的话直接杀掉进程在启动nginx

如果出现“[emerg] 10464#0: unknown directive "ssl" in /usr/local/nginx-0.6.32/conf/nginx.conf:74”则说明没有将ssl模块编译进nginx,在configure的时候加上“--with-http_ssl_module”即可

如:[[email protected] nginx-1.4.4]# ./configure --prefix=/usr/local/nginx --user=www --group=www --with-http_stub_status_module --with-http_ssl_module

9.测试网站是否能够通过https访问

https://www.localhost.cn

另外还可以加入如下代码实现80端口重定向到443

server {
listen 80;
server_name www.localhost.cn;
#rewrite ^(.*) https://$server_name$1 permanent;
rewrite ^(.*)$  https://$host$1 permanent;
}

过以下配置,可以设置一个虚拟主机同时支持HTTP和HTTPS

listen 80;
listen 443 default ssl;

.

参考文档:http://dreamfire.blog.51cto.com/418026/1141302/

 

时间: 2024-08-11 07:49:14

nginx使用ssl模块配置支持HTTPS访问的相关文章

nginx使用ssl模块配置HTTPS支持

默认情况下ssl模块并未被安装,如果要使用该模块则需要在编译时指定–with-http_ssl_module参数,安装模块依赖于OpenSSL库和一些引用文件,通常这些文件并不在同一个软件包中.通常这个文件名类似libssl-dev. 生成证书 可以通过以下步骤生成一个简单的证书:首先,进入你想创建证书和私钥的目录,例如: $ cd /data 创建服务器私钥,命令会让你输入一个口令: $ openssl genrsa -des3 -out server.key 1024 创建签名请求的证书(C

nginx使用ssl模块配置HTTPS支持 <转>

默认情况下ssl模块并未被安装,如果要使用该模块则需要在编译时指定–with-http_ssl_module参数,安装模块依赖于OpenSSL库和一些引用文件,通常这些文件并不在同一个软件包中.通常这个文件名类似libssl-dev. 生成证书 可以通过以下步骤生成一个简单的证书:首先,进入你想创建证书和私钥的目录,例如: $ cd /usr/local/nginx/conf 创建服务器私钥,命令会让你输入一个口令: $ openssl genrsa -des3 -out server.key

Nginx从搭建到配置支持HTTPS

安装 基础包 ububtu apt-get install build-essential apt-get install libtool centos yum -y install gcc automake autoconf libtool make yum install gcc gcc-c++ 进入安装目录 cd /usr/local/src 安装 PCRE 支持正则表达 使 Nginx 支持 Rewrite 功能 wget ftp://ftp.csx.cam.ac.uk/pub/soft

Nginx使用SSL模块配置HTTPS服务

一.环境介绍: 1.Nginx服务器(系统:CentOS6.5)     2.已经授权的证书:       证书包括: a.Cert.csr b.Server.key 证书申请:https://www.wosign.com/ (如果无法提供收费证书也可以使用自定义证书,详细步骤以下:) a.创建服务器私钥 # openssl genrsa -des3 -out Server.key 1024 b.创建签名请求的证书(CSR): # openssl req -new -key Server.key

nginx 支持 https 访问的配置——完整配置文件

关于https的介绍网上很多了,就不啰嗦了. 配置支持https的访问需要nginx安装了ssl模块.其次是要准备ssl证书,nginx版的证书包含了crt文件和key文件,这个ssl证书一般是从认证服务提供商那里申请.假定nginx服务已经准备妥当,现在需要增加https访问的支持,只需要修改一下nginx的虚拟主机配置文件就可以了. 先看完整的配置文件内容吧,重要的几个地方有写注释. # your.domain.name.conf # 这一块是监听 80 端口的访问请求,也就是http的访问

CentOS6.5 下在Nginx中添加SSL证书以支持HTTPS协议访问

参考文献: 1. NginxV1.8.0安装与配置 2. CentOS下在Nginx中添加SSL证书以支持HTTPS协议访问 3. nginx配置ssl证书的方法 4.nginx强制使用https访问(http跳转到https) 5.nginx ssl 107 (net::ERR_SSL_PROTOCOL_ERROR) 无法与服务器建立安全连接 解决方法 配置过程如下: 我的nginx是 yum 安装 具体安装过程参考:[转]CENTOS 6.5 配置YUM安装NGINX+服务器负载均衡 一.安

新手玩阿里云ECS搭建CentOS5.8搭建svn服务器支持https访问方式

关于svn,之前我也不了解这是个什么东西,去年(大二)的时候,在学校接触过一个项目,当时就用到了这个,也都不是我配置的,都是别人给我整好了,我就写代码呗,写了就提交上去,当时也没有考虑过什么事svn,现在在公司实习了,时间很充裕,就想玩玩svn,也顺便把我准备做的毕业设计都传上去,阿里云给了我机会,新手注册,ECS免费半年,多好的事,虽然没有外网带宽,但是买1M的外网带宽也就20多块钱一个月吧!我还是可以接受的,好了不废话了,阿里云在这里就不废话了,反正感觉很高大上,在这里就简单聊聊svn吧!也

Python内置的urllib模块不支持https协议的解决办法

Django站点使用django_cas接入SSO(单点登录系统),配置完成后登录,抛出“urlopen error unknown url type: https”异常.寻根朔源发现是python内置的urllib模块不支持https协议. >>> import urllib>>> urllib.urlopen('http://www.baidu.com')<addinfourl at 269231456 whose fp = <socket._fileo

开始Nginx的SSL模块

一:开始Nginx的SSL模块 1.1 Nginx如果未开启SSL模块,配置Https时提示错误 原因也很简单,nginx缺少http_ssl_module模块,编译安装的时候带上--with-http_ssl_module配置就行了,但是现在的情况是我的nginx已经安装过了,怎么添加模块,其实也很简单,往下看: 做个说明:我的nginx的安装目录是/usr/local/nginx这个目录,我的源码包在/usr/local/src/nginx-1.6.2目录 1 nginx: [emerg]