您的位置:首页 > 理论基础 > 计算机网络

Nginx使用ssl模块配置HTTPS支持

2016-12-13 14:56 567 查看
默认情况下ssl模块并未被安装,如果要使用该模块则需要在编译时指定–with-http_ssl_module参数。

1.安装基础支持包

yum -y install openssl openssl-devel

2.备份原nginx.conf文件为nginx.conf.bak以防万一

3.安装ssl模块

cd /home/nginx-1.10.2

../configure --with-http_ssl_module

make

make install

4.生成证书

可以通过以下步骤生成一个简单的证书:

首先,进入你想创建证书和私钥的目录,例如:

$ cd /usr/local/nginx/conf

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

$ openssl genrsa -des3 -out server.key 1024

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

$ openssl req -new -key server.key -out server.csr

在这一命令执行的过程中,系统会要求您填写如下信息:

Country Name (2 letter code) 使用国际标准组织(ISO)国码格式,填写2个字母的国家代号。中国请填写CN。

State or Province Name (full name) 省份,比如填写Shanghai

Locality Name (eg, city) 城市,比如填写Shanghai

Organization Name (eg, company) 组织单位,比如填写公司名称的拼音

Organizational Unit Name (eg, section) 比如填写IT Dept

Common Name (eg, your websites domain name):
行使 SSL 加密的网站地址。请注意这里并不是单指您的域名,而是直接使用 SSL 的网站名称 例如:pay.abc.com。 一个网站这里定义是:

abc.com 是一个网站;

www.abc.com 是另外一个网站;

pay.abc.com 又是另外一个网站。

Email Address 邮件地址,可以不填

A challenge password 可以不填

An optional company name 可以不填

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

$ cp server.key server.key.org

$ openssl rsa -in server.key.org -out server.key

最后标记证书使用上述私钥和CSR:

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

5.配置nginx

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

server {

server_name YOUR_DOMAINNAME_HERE;

listen 443;

ssl on;

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

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

}

重启nginx。

这样就可以通过以下方式访问:
https://YOUR_DOMAINNAME_HERE
另外还可以加入如下代码实现80端口重定向到443

server {

listen 80;

server_name www.ahggwl.com;

rewrite ^(.*) https://$server_name$1 permanent;

}

参考资料:
https://www.centos.bz/2011/12/nginx-ssl-https-support/ http://www.myssl.cn/guide/ssl_nginx.asp#001 http://blog.csdn.net/testcs_dn/article/details/51461999 https://my.oschina.net/u/923772/blog/716172
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: