产品介绍

  • 维瑞_销售: 维瑞_售前顾问

  • 维瑞_技术: 维瑞_技术支持

  • MSN: [email protected]

    销售QQ: 112580 3355

    Email:[email protected]

    Tel : 0755-6660 8110


    维瑞特别声明:

            我们竭诚为广大客户提供优质

    的服务,如果技术中心文档不能完

    全解决您关于Apache SSL/TLS加

    密、Apache SSL 私钥 的问题,

    即便您不是维瑞 客户,我们同样

    可以 免费 为您提供服务,维瑞深

    信您的口碑是最好的见证。

     


    Apache HTTP Server 版本2.2

    SSL/TLS 高强度加密: 常见问题解答

    配置

  • 可以使用同一个服务器同时提供HTTP和HTTPS服务吗?

  •      当然可以!HTTP和HTTPS使用的是不同的服务端口(HTTP位于80端口,而HTTPS位于443端口),所以它们之间并没有什么直接的冲突。你既可以在这两个端口上分别运行两个Apache实例,也可以在同一个Apache实例上配置两个虚拟主机:一个在80端口应答HTTP请求,另一个在443端口应答HTTPS请求。
     
  • HTTPS究竟使用的是什么端口?

  •      事实上,你可以在任何端口运行HTTPS服务,但是默认的标准端口是443。443端口也是浏览器默认连接的HTTPS端口。当然,你也可以在URL中强制浏览器使用非默认的端口,比如使用666端口的话,你可以这样:https://secure.willrey.com:666/
     
  • 为什么我在启动Apache时会收到与SSLMutex相关的权限错误?

  •      诸如"mod_ssl: Child could not open SSLMutex lockfile /opt/apache/logs/ssl_mutex.18332 (System error follows) [...] System: Permission denied (errno: 13)"这样的错误通常是由于对目录的权限限制过分苛刻所致。请确保Apache子进程的UID对所有父目录(本例中是/opt,/opt/apache,/opt/apache/logs)都具有执行权限

    证书

     
    • 什么是RSA私钥(RSA Private Key)、CSR(证书签发请求)、证书(Certificates)?  

    RSA私钥(RSA Private Key)文件是一个数字文件,它用于解密你所接收到的信息。此私钥有一个对应的、被封装在你发布出去的证书文件中的公钥,而给你发送信息的人正是用这个公钥对发送的信息进行加密的。

    一个证书签发请求(CSR,Certificate Signing Request)是一个数字文件,它包含了你的公钥和你的名字。你把这个CSR发送给认证中心(CA)后,CA将会对其进行签名(译者注:使用CA自己的私钥对你的公钥和名字进行加密),并将其转化为一个真正的证书。

    证书(Certificate)包含了你的RSA公钥、你的名字、CA的名字,并且经过了CA的数字签名。能够识别这个CA的浏览器可以校验这个证书上的签名,从而就可以获取你的RSA公钥。这样浏览器就可以发送只有你能够解密的信息。


       
    • 配置了SSL证书支持的Apache和普通的Apache在启动时有什么不同吗?
          

      一般说来没什么不同,但是如果你使用的SSL私钥文件带有密码(passphrase)保护,那么Apache将会在启动时要求你输入密码。

      必须在Apache启动时输入密语可能会造成一些麻烦:比如你无法在系统的启动脚本中启动Apache服务。当然,你也可以使用下面的办法去除私钥文件上的密码。

    首先备份原始RSA私钥文件,然后再去除RSA私钥文件上的密语保护:
    $ cp server.key server.key.org
    $ openssl rsa -in server.key.org -out server.key

    确保server.key只能被root读取:
    $ chmod 400 server.key

    现在,server.key中就包含了一份未加密的私钥。如果你让Apache使用这个文件,那么就不会在启动的时候提示输入密码了。但是如果有任何其他人获得了这个未加密的私钥文件,那么他就可以冒充你的身份。所以你必须确保只有root用户可以读取它,然后以root启动Apache并以其他用户身份运行Apache的子进程。

    另一种选择是使用"SSLPassPhraseDialog exec:/path/to/program"功能,但是需要切记的是这种做法并不能获得更高的安全性(当然也不更低)。

    • 如何验证一个私钥文件是否与一个证书相匹配?

      每个私钥文件都包含一连串数字,其中有两串数字来源于对应的公钥。当你生成CSR的时候,这两串数字将被包含在其中。自然,当CSR被签署成证书后,这两串数字仍然被包含在证书中。

      因此要验证一个私钥文件是否与一个证书相匹配,只要检查证书中的这两串数字是否与私钥中的相同即可。可以使用下面这两个命令查看:

      $ openssl x509 -noout -text -in server.crt
      $ openssl rsa -noout -text -in server.key

      私钥和证书输出的"modulus"和"public exponent"两个部分必须互相匹配。"public exponent"的值通常都是"65537",但是"modulus"的值却是一串很长很长数字,检查起来非常吃力。所以,你也可以使用下面的命令,通过检查其MD5值是否一致来判断:

      $ openssl x509 -noout -modulus -in server.crt | openssl md5
      $ openssl rsa -noout -modulus -in server.key | openssl md5

      这个方法允许你通过比较两串较短的MD5值来判断两个较长的"modulus"值是否相等。理论上,可能会出现两个"modulus"值不等,但MD5值相等的可能。但在实践中,这种可能性基本为零。

      如果你想检查一个CSR与一个私钥或证书是否匹配,也可以用相同的办法:

      $ openssl req -noout -modulus -in server.csr | openssl md5

    • 为什么我的2048位私钥不能正常使用?
      为了兼容某些特别的浏览器,建议你只使用1024位RSA密钥,否则这些浏览器将不能正常工作。[译者注]:IE只到8.0才真正支持大于1024位RSA密钥,但Firefox2/Opera9甚至可以支持到4096位(也许更长)的RSA密钥。

    • 为什么在将SSLeay从0.8版本升级到0.9之后客户端认证会失败?
      放在SSLCACertificatePath指令目录下的CA证书会被SSLeay通过"openssl x509 -noout -hash"命令得到的哈希值进行索引。但是SSLeay 0.8与0.9版本之间的哈希算法并不相同,因此你必须在升级之后使用mod_ssl提供的Makefile更新哈希值。

    • 如何将PEM格式的证书转换成DER格式?
      SSLeay/OpenSSL默认的证书格式是PEM,它是经过Base64编码的DER再加上页眉页脚线组成的。而某些应用程序(比如Microsoft Internet Explorer)却只能识别原始的DER格式。你可以使用下面的命令将PEM格式的cert.pem证书转换成DER格式的cert.der证书:
      $ openssl x509 -in cert.pem -out cert.der -outform DER

    • mod_ssl可以配合SGC(Server Gated Cryptography)技术(也就是Verisign Global ID)一起使用吗?
      当然可以!mod_ssl从2.1版本起就支持SGC技术了,并且不需要任何特殊的配置——只要使用Global ID作为你的服务器证书即可。客户端浏览器的提升工作会由mod_ssl在运行时自动处理。