← 返回文章

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

Apache和Nginx的SSL证书的生成及配置 1.生成私钥文件: openssl genrsa -des3 -out server.key 1024 这种方式,会要求你Enter PEM pass,需要输入私钥加密…

#Ubuntu
Ubuntu

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文件即可