Nginx制作CSR申请文件
制作CSR 申请文件Nginx 是目前最新的高性能Web 服务器,和传统的Apache 服务器相比,特别在大量的客户并发连接下,性能要提高10倍以上。很多大型的PHP 网站都采用了Nginx 服务器。
制作CSR 申请文件
Nginx 是目前最新的高性能Web 服务器,和传统的Apache 服务器相比,特别在大量的客户并发连接下,性能要提高10倍以上。很多大型的PHP 网站都采用了Nginx 服务器。虽然Nginx 采用是Linux2.6内核和epoll 架构的网络I/O模型,但在使用上和Apache 还是比较相似,是Apache 一个非常不错的替代产品,下面主要介绍一下Nginx 下使用SSL 证书的一些内容。
Nginx SSL主要采用BASE64位的PEM 文件格式,可以采用Openssl 命令行工具来生成CSR 文件,OpenSSL 工具是免费的,你可以下载使用已经编译好的OpenSSL 0.9.8.a for win32,下载地址是: http://www.myssl.cn/download/OpenSSL_0.9.8.a_Win32.zip
1、Openssl 是一个命令行工具,首先将下载包解压到C:openssl下。
2、打开DOS 命令行窗口,进入C:openssl,输入命令:
openssl req -new -nodes -keyout server.key -out server.csr
Loading 'screen' into random state - done
Generating a 1024 bit RSA private key
...........................
....................................
writing new private key to '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) [AU]:CN
State or Province Name (full name) [Some-State]:Shanghai
Locality Name (eg, city) []:Shanghai
Organization Name (eg, company) [Internet Widgits Ltd]:
Shanghai Fastcom Technology Co.,Ltd.
Organizational Unit Name (eg, section) []:IT Dept.
Common Name (eg, YOUR name) []:www.myssl.cn
Email Address []:
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
,3、在完成了如上的交互信息输入后,当前目录下将产生两个文件:server.key 和 server.csr。请妥善保存这两个文件,请不要泄露server.key 私钥文件。
4、在这一命令执行的过程中,系统会要求您填写如下信息:

5、如何产生2048位的密钥对?
在上面的命令行交互中,我们看到“Generating a 1024 bit RSA private key”,即系统缺省采用1024位的RSA 密钥长度,一般来说1024位是足够的,但是在申请EV 证书的时候,我们必须采用2048位的密钥长度,要生成2048位的密钥,可以修改上面的命令行:(斜体部分为增加的参数)
openssl req -new -nodes -newkey rsa:2048 -keyout server.key -out server.csr
6、如何制作中文的CSR 文件?
中文CSR 文件,主要指企业名称、部门,城市,省份等信息采用中文,通用名和国家代码仍然必须是英文的,GeoTrust 目前已经全面支持中文的CSR ,要制作中文的CSR ,最简单的办法仍然是采用我们的在线CSR 生成器: https://www.myssl.cn/openssl/createcsr.asp
如果希望自己通过Openssl 工具来制作中文CSR 就需要多费一些工夫了,下面详细介绍一下采用Openssl 命令行制作中文CSR 的方法。
Openssl 本身是可以支持UTF-8编码来支持中文的,但是如果通过DOS 命令行是无法输入UTF-8的中文字符的,所以我们必须采用Opnessl.cnf 配置文件的缺省值来实现中文字的输入。采用一个文本编辑器,最好是支持utf-8字符的,我采用UltraEdit ,打开Openssl.cnf 文件,首先修改: string_mask = utf8only
这句话将强制字符的输入采用UTF-8的编码格式,然后修改缺省DN 信息,录入我们需要合中文字符,如下 commonName_default
0.organizationName_default = www.myssl.cn = 上海迅通科技有限公司
,organizationalUnitName_default = IT 部门
stateOrProvinceName_default = 上海
localityName_default = 上海
countryName_default = CN
然后将文件按utf-8,no bom的编码格式保存,在Ultraedit 下,请选择“另存为”,格式为“UTF-8 - NO-BOM”。如果没有可以支持UTF-8的编辑工具,也可以下载一个ICONV 来做编码转换工作。 准备好openss.cnf 文件后,输入命令行:
openssl req -utf8 -config config.cnf -new -nodes -batch -keyout server.key -out server.csr 系统将自动生成CSR 文件,保存在server.csr 中。
CSR 已经做好,最后强调,必须同时保存好server.csr 和server.key2个文件,尤其是server.key 一定丢失,将无法再使用这个证书。
安装证书文件
1、将证书内容存为一个文件:
您会收到一封来自迅通诚信的邮件,证书内容附在邮件中。请将邮件中的证书部分的内容用Vi 或Notepad 存成一个纯文本文件。不要将其存成Microsoft Word 或其它字处理软件格式,并确定证书内容中不含有空行和空格,文件名可以为server.cer 。如下所示:

请根据产品下载对应的中间证书:
∙
∙
∙ (QuickSSL Premium) 全球信SSL 企业版证书 (True BusinessID) 全球信SSL 企业版多域名证书 (True BusinessID Multidomain)
,∙
∙
∙ (True BusinessID Wildcard) 全球信SSL 至尊版证书 (True BusinessID EV) 闪快SSL 普及版 (RadidSSL)
请用Notepad 打开中间证书,并复制中间证书中的所有内容,粘贴到Server.cer 文件最后,再次保存好server.cer 文件,并将此文件和制作CSR 时候生成的server.key 一起复制到服务器上。
2、修改nginx.conf 文件。
Nginx 的参数配置都在nginx.conf 文件中,SSL 配置也是如此,下面就是配置举例:
server {
listen 443;
server_name www.myssl.cn;
ssl on;
ssl_certificate server.cer;
ssl_certificate_key server.key;
}
配置参数说明如下:
∙
∙
∙
∙
∙
∙ listen 443: SSL 协议监听的端口,SSL 协议缺省使用443端口。 server_name: 指定SSL 网站主机名。 ssl on: SSL 功能打开,采用SSL 通信协议。 ssl_certificate: 证书文件,server.cer ssl_certificate_key 私钥文件,server.key ssl_protocols
支持的SSL 协议标准。
3、重新启动nginx ,如果是在Windows 2003下,输入:
nginx -s stop
nginx
客户端证书认证
,如果要求客户采用客户证书认证方式,可以在原来的配置下增加如下参数:
server {
......
......
......
ssl_client_certificate on
ssl_client_certificate ca.cer
ssl_verify_depth 1
}
配置参数说明如下:
∙
∙
∙
∙ ssl_verify_client on 要求SSL 客户证书认证。 ssl_client_certificate ca.cer 签发客户证书的CA 证书,用来验证客户证书。 ssl on: SSL 功能打开,采用SSL 通信协议。 ssl_verify_depth 1:
SSL 客户证书认证链长度。
证书的备份(导出)
在Nginx 下的证书备份是非常简单的,打开nginx.conf 文件,找到ssl_certificate和
ssl_certificate_key指定的2个文件,通常是.cer(.crt)和.key 文件,将这两个文件复制到备份媒质上即可。
证书的恢复(导入)
要恢复Nginx 的证书同样非常简单,将备份的.cer 和.key 文件,复制到新的服务器上,然后参考上面服务器证书安装说明,修改nginx.conf 文件即可。
Openssl 编译简介
1、Openssl 是开源的,可以到http://www.openssl.org/source/下载最新的版本。然后解压到c:openssl。
2、要编译Openssl ,需要下载并安装ActivePerl ,并在系统路径中添加“C:Perlsitebin;C:Perlbin”
,3、安装Vs2003(也可以安装VS2005,2008但这2个版本的VC 编译出来的Openssl 是有BUG 的,在特定情况下会产生win32异常错误,仅适合偶尔用一下的情况)。
4、使用VS2003下的Visual Studio.net 2003 Command Prompt进入控制台模式(这个模式会自动设置各种环境变量)
5、进入c:openssl。
6、输入(注意大小写): perl Configure VC-WIN32
7、输入: msdo_ms
8、输入: nmake -f msntdll.mak
9、Openssl 已经编译好了,执行程序在out32dll 目录下。