最近需要测试Nginx的SSL模块,下面分享下SSL数字签名的制作以及在Nginx中的配置情况。
Nginx所在机器为CentOS, 使用Openssl制作个人SSL签名
1)安装Nginx:
./configure .....你自己需要的选项.... --with-http_ssl_module
比如:
./configure --prefix=/usr/local/nginx --with-ld-opt='-lstdc++ -lpthread -ldl -rdynamic' /
--add-module=./addons/nginx_header_more_module /
--add-module=./addons/nginx_ajp_module /
--with-http_ssl_module
make && make install
这样就把Nginx安装到/usr/local/nginx下了
2)制作个人SSL数字签名:
(一) 首先你需要创建一个文件夹,用来存放证书和中间生成的数据: $CA
(二) 创建CA证书:
a) 可以创建一个RSA密钥:openssl genrsa -des3 -out $CA/ca.key 1024
b) 创建一个CA证书:openssl req -new -x509 -days 3650 -key ca.key -out $CA/ca.crt
然后需要输入下列信息:
Country Name: CN
State or Province Name: BJ
Locality Name: Beijing
Organization Name: NHN
Organizational Unit Name: QA
Common Name:YOUR_DOMAINNAME_HERE (test.nhn.cn)
Email Address: zhaoyanyan@nhn.com
(三) 创建Server证书:
a) 创建server的RSA密钥:openssl genrsa -des3 -out $CA/server.key 1024
b) 生成证书签署请求的CSR: openssl req -new -key $CA/server.key -out $CA/server.csr
c) touch $CA/index.txt
d) echo "01" >> $CA/serial
e) 修改openssl.cnf(/etc/pki/tls/openssl.cnf)
dir = ../../CA 改为你创建的目录 dir = $CA
f) 签署证书:openssl ca -in $CA/server.csr -out $CA/server.crt -cert $CA/ca.crt -keyfile $CA/ca.key
3) Nginx使用证书完成单向签名
server {
server_name YOUR_DOMAINNAME_HERE;
listen 443;
ssl on;
ssl_certificate $CA/server.crt;
ssl_certificate_key $CA/server.key;
}
4) 重启Nginx
5) 访问https://YOUR_DOMAINNAME_HERE成功!!!!