D7-Nginx-SSL

 

1 准备SSL证书

 
  1. mkdir /usr/local/nginx/conf/ssl 
  2. cd /usr/local/nginx/conf/ssl 

//生成私钥 

//rsa私钥(带密码),des3 算法, 1024 位强度

 
  1. openssl genrsa -des3 -out server.key 1024 

Generating RSA private key, 1024 bit long modulus

.......++++++
...................++++++
e is 65537 (0x10001)
Enter pass phrase for server.key:                     #password
Verifying - Enter pass phrase for server.key:      #再次输入
//生成证书请求文件 
//提示输入国家、省份、城市、域名信息等,重要的是email 一定要是你的域名后缀的,比如 dongnan@test.com 并且能接受邮件!

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

Enter pass phrase for server.key:                     #前面的密码

You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [GB]:CN      
State or Province Name (full name) [Berkshire]:GZ
Locality Name (eg, city) [Newbury]:GZ
Organization Name (eg, company) [My Company Ltd]:YK
Organizational Unit Name (eg, section) []:YK
Common Name (eg, your name or your server's hostname) []:test.com
Email Address []:jonas@test.com
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
//生成私钥(不含密码)

 
  1. cp server.key server.key.org 
  2. openssl rsa -in server.key.org -out server.key 

Enter pass phrase for server.key.org:                  #前面的密码

writing RSA key
//生成证书

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

Signature ok

subject=/C=CN/ST=BJ/L=BJ/O=YK/OU=YK/CN=test.com/emailAddress=dongnan@test.com
Getting Private key
 

2 配置 Nginx

 
  1. chmod -R 600 /usr/local/nginx/conf/ssl 
 
  1. vim /usr/local/nginx/conf/vhosts/proxy.conf        
  2.         listen          443 ssl; 
  3.         server_name     client.test.com; 
  4.         ssl_certificate      ssl/server.crt; 
  5.         ssl_certificate_key  ssl/server.key;

通过https://api.test.com访问,看是否出现证书提示。