Nginx实现https单向认证,在CentOS系统下


1、安装

Nginx要安装http_ssl_module模块,需要OpenSSL库和相关的开发包,因此在安装前,必须安装这些支持。在CentOS系统下,直接用yum安装即可

# yum install openssl openssl-devel

编译nginx

# tar -zxvf pcre-8.12.tar.gz
# cd pcre-8.12
# ./configure –prefix=/usr/local
# make
# make install
# tar -zxvf nginx-1.0.0.tar.gz
# cd nginx-1.0.0
# ./configure –prefix=/usr/local/nginx –user=www –group=www –with-http_ssl_module –with-pcre
# make
# make install

2、制作密匙(单项认证)

# mkdir /usr/local/nginx/ssl
# cd /usr/local/nginx/ssl
# openssl genrsa -des3 -out server.key 1024 (建立服务器私钥,在这个过程中需要输入密码短语,需要记住这个密码)
# openssl req -new -key server.key -out server.csr

输入命令以后,需要填写如下内容:

Country Name(国家:中国填写CN)
State or Province Name(区域或是省份:CHONGQING)
Locality Name(地区局部名字:CHONGQING)
Organization Name(机构名称:填写公司名)
Organizational Unit Name(组织单位名称:部门名称)
Common Name(网站域名)
Email Address(邮箱地址)
A challenge password(输入一个密码)
An optional company name(一个可选的公司名称)

输入万这些内容,就会在当前目录生成server.csr文件

# cp server.key server.key.org
# openssl rsa -in server.key.org -out server.key (对于使用上面的私钥启动具有SSL功能的NGINX)
# openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt (使用上面的密钥和CSR对证书进行签名)

3、配置NGINX

编辑需要使用HTTPS的域名的NGINX配置文件(上面填写的Common Name网站域名)

server {
listen 443;
server_name www.xxx.com;
ssl on;
ssl_certificate /usr/local/nginx/ssl/server.crt;
ssl_certificate_key /usr/local/nginx/ssl/server.key;
}

保存,重启NGINX这样就搭建了一个简单的https服务的网站(单项认证)。

相关内容