航行日志

Apache和Nginx的SSL证书的生成及配置

Apache和Nginx的SSL证书的生成及配置

1.生成私钥文件:

openssl genrsa -des3 -out server.key 1024

这种方式,会要求你Enter PEM pass,需要输入私钥加密密码,在apache中配置了SSL后启动443时,会要求输入这个密码的, 不过,你可以这样把密码给去掉:

openssl rsa -in server.key -out my-server.key

然后把2个key文件给mv一下

或者,可以把上2个步骤合为一个:

openssl genrsa -out server.key 1024

这样生成的私钥文件,是不包含密码的

2.生成CSR请求文件:

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

根据提示填入DN信息,即可在该目录下产生server.csr (证书请求)和server.key
• Country Name:您所在国家的ISO标准代号,中国为CN
• State or Province Name:您单位所在地省/自治区/直辖市
• Locality Name:您单位所在地的市/县/区
• Organization Name:是您单位/机构/企业合法的名称
• Organizational Unit Name:部门名称
• Common Name:为证书的通用名,这里应是您主机的全称,例如:www.wooley.me。这个名称必须与通过浏览器访 问您网站的URL完全相同。这一点十分重要,否则您的用户会发现您服务器证书的通用名与站点的名字不匹配,用户就会怀疑您的证书的真实性
• Email Address:地址是您单位的邮件地址
• “extra”attributes可以不必输入

3.把CSR文件提交到对应的根证书CA那里(如:verisign),请求证书CRT文件,保存为server.crt。
4.如果您申请的是全球服务器证书(如:verisign),需要安装中间级证书,以构成一个证书链,使浏览器信任您的证书。 如果不是,则可以跳过这一步。

对于verisign,在如下页面获得中间证书:
http://www.verisign.com/support/verisign-intermediate-ca/secure-site-intermediate/index.html
将中间级证书存成intermediate.crt。

5.配置Apache或nginx:
Apache的配置:

vi extra/httpd-ssl.conf:



1. <VirtualHost default:443>
2. ServerName test.sohu.com:443
3.
4. SSLCertificateFile “/usr/local/apache2/conf/server.crt”
5. SSLCertificateKeyFile “/usr/local/apache2/conf/server.key”
6. SSLCACertificateFile “/usr/local/apache2/conf/intermediate.crt”
7. ….
8. </VirtualHost>

Nginx的配置:

server { listen 443; server_name test.sohu.com; ``ssl on; ssl_certificate server.crt; ssl_certificate_key server.key; ssl_session_timeout 5m; ssl_protocols SSLv2 SSLv3 TLSv1; ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP; ssl_prefer_server_ciphers on; .... }
以上是新申请ssl证书的步骤
对于证书快过期了,更新证书的情况,只需要替换对应的server.crt文件即可