apache开启SSL功能的步骤和方法

[apache] 2024-03-29 圈点550

摘要:Apache增加SSL功能的步骤。


Apache增加SSL功能的步骤

总览:
=================================
1、生成服务器key文件
2、根据key文件生成.csr文件
3、提交.csr给CA
4、CA根据.csr制作.crt证书文件(CA认证后签发的服务器证书)和.ca文件(机构的公钥证书),如果是自己测试当然可以自己给自己做一个证书

服务器上需要放置:
1、解密.key后的decrypt-key文件
2、.crt证书文件
3、.ca中级证书文件(可选)
=================================


以abc.com为例,步骤说明:
1:生成.key

 /usr/bin/openssl genrsa -des3 -out abc.com.key 1024

Enter pass phrase for abc.com.key: 输入key文件的保护口令

  
若要将私钥解密,则:

 /usr/bin/openssl rsa -in abc.com.key -out abc.com.decrypt-key

2:根据.key生成.csr
   /usr/bin/openssl req -new -key abc.com.key -out abc.com.csr

Please enter the following 'extra' attributes

to be sent with your certificate request

A challenge password []:输入随机字符串,配合.csr文件的生成.


3:提交.csr文件给CA,以便他们制作.crt证书文件和ca文件.

     如果是自己制作,可以使用下面的命令:

      /usr/bin/openssl x509 -in abc.com.csr -out abc.com.crt -req -signkey abc.com.key -days 365
4:收到CA来的(或者自制的).crt证书文件和ca文件后,在服务器上:
.key文件:/home/admin/conf/apache/ssl.key/abc.com.decrypt-key
.crt文件:/home/admin/conf/apache/ssl.crt/abc.com.crt
.ca文件: /home/admin/conf/apache/ssl.crt/abc.com.ca

httpd.conf中配置:
   ################################

MaxClients 96

AddDefaultCharset GBK

NameVirtualHost *:443

ServerName abc.com

DocumentRoot /home/admin/share/htdocs

DirectoryIndex index.html

## SSL information

SSLEngine on

SSLCertificateFile /home/admin/conf/apache/ssl.crt/abc.com.crt

SSLCertificateKeyFile /home/admin/conf/apache/ssl.key/abc.com.decrypt-key

# SSLCACertificate* is necessary if you have a Global-ID certificate

# such as the Thawte *.yahoo.com certificate

SSLCACertificatePath /home/admin/conf/apache/ssl.crt

SSLCACertificateFile /home/admin/conf/apache/ssl.crt/abc.com.ca

################################


注:如何在同一机器上配置多个SSL应用
一般情况下,同一个IP地址或同一个端口,只能有一个SSL。
但是可以采用如下办法解决:
同IP地址不同端口,部署多个SSL。
同端口不同IP地址,部署多个SSL。

 

配置过程中可能出现的问题:

1、在windows中可能会出现找不到openssl.cnf的提示,apache根目录的conf/openssl.cnf即是。需要在命令中加上-config con/openssl.cnf即可解决。

2.如果配置好的ssl访问时网页提示 SSL received a record that exceeded the maximum permissible length.
(Error code: ssl_error_rx_record_too_long)可能是1)虚拟机配置出错,2)也可能是访问时直接在url中写了端口的缘故,不过真正原因不在显示写了端口,多半也是因为其中虚拟机配置错误引起。



apache  SSL  

感谢反馈,已提交成功,审核后即会显示