行业推荐
电信运营商
银行/ 基金/ 证券
大型企业
中小企业
电子商务
政府/ 教育/ 医疗
应用推荐
Exchange
移动应用
SSL VPN
企业OA
SSL服务器证书
GeoTrust
  -SSL专业版证书
 Quickssl Premium
  -SSL专业版多域名证书
 Power Server ID
  -SSL企业版证书
 True Business ID
  -SSL企业版通配符证书
 True Business ID Wildcard
  -SSL企业版多域名证书
 True Business ID Multidomain
  -SSL至尊版证书
 True Business ID With EV
  -SSL至尊版多域名证书
 TBID with EV Multidomain
 
Symantec
  -安全网站证书
 Secure Site
  -安全网站专业版证书
 Secure Site Pro
  -安全网站通配符证书
 Secure Site Wildcard
  -扩展确认的安全网站证书
 Secure Site with EV
  -扩展确认的安全网站专业版证书
 Secure Site Pro with EV
 
闪快
  -闪快SSL普及版
 Rapidssl
  -闪快SSL普及版通配符
 Rapidssl Wildcard
 
代码签名证书
 
Symantec
  -微软代码签名产品
  -Java代码签名产品
 
Thawte
  -微软代码签名产品
  -Java代码签名产品
首页 > 技术支持 >SSL证书的安装> Apache

Apache下SSL证书的安装

接受并保存证书文件

证书验证完成后,您会收到一封来自 sslorders@geotrust.com,主题最后有"Complete"字样的信,这就是证书签发邮件。在邮件正文最后的一段"Your Web Server Certificate:"下面的一段文字就是证书。请将该段文字,复制并粘贴到Notepad,再保存为一个存文本文件:server.cer。
证书保存为一个纯文本格式文件

Apache下SSL证书的安装

1、将保存好的server.cer文件和制作CSR时候生成的server.key一起复制到服务器上。
2、修改httpd.conf文件。
Apache一般有2个版本下载,一个是带SSL模块的,一个是不带SSL的,请首先检查自己的SSL是包含了SSL模块的,否则就没法做了。Apache的参数配置都在httpd.conf文件中,SSL配置也是如此,此外还可以通过include httpd-ssl.conf来包含一个专门配置SSL的配置文件,如果激活了httpd-include ssl.conf,则可以打开httpd-ssl.conf来配置相应参数。
一般,我们直接在httpd.conf文件中直接配置SSL参数:

#加载模块mod_ssl.so,此模块是启用SSL功能必须的。
LoadModule ssl_module modules/mod_ssl.so

#监听443端口
Listen 443

#建立一个SSL的虚拟站点,避免SSL配置影响原来HTTP的站点配置。
<VirtualHost _default_:443>
DocumentRoot "C:/Program Files/Apache2/htdocs"
ServerName www.myssl.cn:443
SSLEngine on
SSLCertificateFile "C:/SSL/server.cer"
SSLCertificateKeyFile "C:/SSL/server.key"
SSLCertificateChainFile "C:/SSL/chain.cer"
ErrorLog "C:/Program Files/Apache2/logs/error.log"
TransferLog "C:/Program Files/Apache2/logs/access.log"
</VirtualHost>

#说明主站是使用HTTP通信的,只有上面虚拟站点有SSL
SSLEngine off                               
配置参数说明如下(完整的SSL配置参数见这里):
Listen 443:SSL协议监听的端口,同下面Virtualhost 中的端口需要匹配,SSL协议缺省使用443端口,也有使用8443的情况。
SSLEngine on:SSL功能打开,如果在Virtualhost出现这句,则仅作用于虚拟机站点配置范围,这个虚拟机站点全部使用SSL通信,如果出现在Virtualhost外,则作用于全局,整个服务器都使用SSL(HTTPS)通信,不能采用HTTP通信,所以通常都在Virtualhost中加这句。
SSLCertificateFile: SSL证书文件,server.cer
SSLCertificateKeyFile:私钥文件,server.key
SSLCertificateChainFile:中间链证书,请根据产品下载中间链证书,并保存为'chain.cer'
3、重新启动Apache,如果是在Linux下,输入:
apachectl stop
apachectl startssl 

Apache下客户端证书的设置

1、基本客户证书认证
强制客户对整个站点都必须采用客户证书认证的方式,可以在原来的配置下增加如下参数,其中ca.cer是签发客户端证书的根证书:
<VirtualHost _default_:443>
......
......
......
# 需要客户有一个客户端证书,并由ca.cer这个CA证书签署
SSLVerifyClient require
SSLVerifyDepth 1
SSLCACertificateFile conf/ssl.crt/ca.cer 
</VirtualHost>
      
2、如果只要求对特定目录采用客户证书认证方式,其他目录都不需要客户端证书,则可以采用如下配置:
<VirtualHost _default_:443>
......
......
......
# 需要客户有一个客户端证书,并由ca.cer这个CA证书签署
SSLVerifyClient none
SSLCACertificateFile conf/ssl.crt/ca.crt
<Location /secure/area>
SSLVerifyClient require
SSLVerifyDepth 1
</Location>
</VirtualHost>

强制通过SSL访问Apache

强制HTTPS访问,主要通过将用户访问的HTTP请求自动转换为HTTPS请求,有两种方式:一种是通过编程的方式,详见:"强制用户通过SSL访问网站" ;另一种方式则是通过Apache强大的Rewrite功能。
如果要针对整个网站全部执行HTTP自动转为HTTPS的功能,可以在httpd.conf文件中,增加:
RewriteEngine on
RewriteCond   %{HTTPS} !=on
RewriteRule   ^(.*)  https://%{SERVER_NAME}$1 [L,R]
如果,仅要求对\secure目录下的内容强制采用HTTPS访问,可以在httpd.conf文件中加入如下语句:
<Directory "C:\Program Files\htdocs\secure">
RewriteEngine on
RewriteCond   %{HTTPS} !=on
RewriteRule   ^(.*)  https://%{SERVER_NAME}/secure/$1 [L,R]
</Directory>

如何对来自Internet并要访问Intranet的客户强制采用强加密的HTTPS通信,并采用基本或者客户证书的认证方式?同时还要确保来自Intranet的客户可以进行HTTP访问?
假设IntranetIP地址段是192.160.1.0/24,Intranet站点子区域的URL是/subarea ,则可以在HTTPS虚拟主机站点以外增加如下配置(这样可以同时作用于HTTPS和HTTP):
SSLCACertificateFile conf/ssl.crt/company-ca.crt

<Directory /usr/local/apache2/htdocs>
# subarea以外的区域只允许来自Intranet的访问
Order                deny,allow
Deny                 from all
Allow                from 192.168.1.0/24
</Directory>

<Directory /usr/local/apache2/htdocs/subarea>
# 在subarea以内,允许所有来自Intranet的访问,
# 但对来自Internet的访问,仅允许HTTPS+Strong-Cipher+Password
# 或者HTTPS+Strong-Cipher+Client-Certificate

# 如果使用了HTTPS,则确保使用高强度加密
# 同时允许客户以基本认证的形式认证
SSLVerifyClient      optional
SSLVerifyDepth       1
SSLOptions           +FakeBasicAuth +StrictRequire
SSLRequire           %{SSL_CIPHER_USEKEYSIZE} >= 128

# 强制来自Internet的客户使用HTTPS
RewriteEngine        on
RewriteCond          %{REMOTE_ADDR} !^192\.168\.1\.[0-9]+$
RewriteCond          %{HTTPS} !=on
RewriteRule          ^(.*)  https://%{SERVER_NAME}$1 [L,R]

# 允许网络访问和基本认证
Satisfy              any

# 控制网络访问
Order                deny,allow
Deny                 from all
Allow                192.168.1.0/24

# HTTP基本认证
AuthType             basic
AuthName             "Protected Intranet Area"
AuthBasicProvider    file
AuthUserFile         conf/protected.passwd
Require              valid-user
</Directory>
新品推荐

 

 

产品资源
快速分类
安装到服务器证书