zoukankan      html  css  js  c++  java
  • Apache添加ssl的流程

    Apache添加ssl的流程

     

    1. 首先保证安装了Openssl,并且能够在在终端执行它。  
      2.
    为你的Apache(三倍-DES加密,PEM格式)   创建一个RSA私钥。  
      $   openssl   genrsa   -des3   -out   server.key   1024    
     
    请将你的server.key文件备份,并且记住你输入得进入密码。能够通过以下的命令察看该文件:  
      $   openssl   rsa   -noout   -text   -in   server.key    
     
    你也可以通过以下的命令创建一个没有加密的版本(不建议):  
      $   openssl   rsa   -in   server.key   -out   server.key.unsecure    
      3.
    通过RSA私钥文件来创建一个证书请求文件(PEM格式,CSR  
      $   openssl   req   -new   -key   server.key   -out   server.csr    
     
    同样,你需要做一个备份,同时,在Openssl命令行提示输入CommonName的过程中,你必须输入一个FQDN(一个完全的有资格的域名),一个站点生成了一个CSR请求文件。可以通过以下的命令来查看CSR的详细内容:  
      $   openssl   req   -noout   -text   -in   server.csr    
      4.
    现在,你已经有了一个证书请求文件(CSR)了,你可以将此文件发送给一个认证机构来进行认证,当然会等一段时间并且花上一些钱。或者通过自己的CA认证机构来进行认证。  
      § Verisign  
      http://digitalid.verisign.com/server/apacheNotice.htm    
      § Thawte   Consulting  
      http://www.thawte.com/certs/server/request.html    
      § CertiSign   Certificadora   Digital   Ltda.  
      http://www.certisign.com.br    
      § IKS   GmbH  
      http://www.iks-jena.de/produkte/ca/    
      § Uptime   Commerce   Ltd.  
      http://www.uptimecommerce.com    
      § BelSign   NV/SA  
      http://www.belsign.be    
     
    通过以下的命令来察看经过认证的证书信息。  
      $   openssl   x509   -noout   -text   -in   server.crt    
      5.
    现在,我们有了两个文件,server.keyserver.crt   ,下面就是在Apache中的httpd.conf文件配置:  
      SSLCertificateFile         /path/to/this/server.crt  
      SSLCertificateKeyFile   /path/to/this/server.key  
                     
     
    请求文件不再需要了。  
      ·
    使用自认证机构:  
     
    最简单的就是通过CA.pl或者是通过CA.sh来对请求文件签名。  
      1.
    为你的CA创建一个RSA私钥(三DES加密并且是PEM格式):  
      $   openssl   genrsa   -des3   -out   ca.key   1024    
     
    备份并且记住你输入的访问密码。通过以下的命令可以查看私钥的详细信息:  
      $   openssl   rsa   -noout   -text   -in   ca.key    
     
    你也可以创建一个非加密的PEM格式的私钥:  
      $   openssl   rsa   -in   ca.key   -out   ca.key.unsecure    
      2.
    创建一个自签名的证书文件(X.509   结构,输出为PEM格式):  
      $   openssl   req   -new   -x509   -days   365   -key   ca.key   -out   ca.crt    
     
    通过以下的命令查询:  
      $   openssl   x509   -noout   -text   -in   ca.crt    
      3.
    准备一个脚本文件来对请求文件签名,Openssl不允许简单的通过openssl   ca来对请求文件签名。所以一个名为sign.sh的脚本文件(mod_ssl的子目录pkg.contrib下),是用这个来进行签名,不过还是建议使 用下面的方法进行签名。  
       
      4.
    现在可以用这个脚本来进行签名了(刚才生成的CA的私钥和证书必须在这个脚本的目录下):  
      $   ./sign.sh   server.csr    
     
    得到一个证书文件server.crt.    
      ·
    怎样更改我的私钥的   pass-phrase   密码?  
     
    只需要简单的读取它并重新写入,同时指定它的pass-phrase   ,通过以下的命令完成:  
      $   openssl   rsa   -des3   -in   server.key   -out   server.key.new  
      $   mv   server.key.new   server.key  
     
    这时,你被要求两次来输入一个PEM   pass-phrase,第一次要求输入旧密码,第二次要求输入新密码。  
      ·
    怎样可以消除Apache启动的时候的密码(pass-phrase)提示对话框:  
     
    原因是保存在你的私钥文件中的RSA私钥是一个一加密格式保存的。密码是保证能够读取这个密钥文件,如果保证你的服务器足够的安全的话,可以通过以下的命令消除:  
      1.
    RSA私钥中移除密码(同时保留源文件):  
      $   cp   server.key   server.key.org  
      $   openssl   rsa   -in   server.key.org   -out   server.key    
      2.
    保证私钥只能被root用户读取:  
      $   chmod   400   server.key    
     
    现在这是一个没有没有加密的密钥拷贝。在使用这个密钥文件的时候,将不会再提示你输入密码,然而,如果其他任何人的到这个私钥文件,他都可以在网络上模仿你。所以一定要保证这个密钥文件只能被root用户读取。  
      ·
    怎么验证私钥文件和我的证书文件是匹配的?  
     
    私钥文件包括一系列的数字。这些数字中的两个是来自公钥文件的,其他的是私钥的一部分。公钥的一些bit值被嵌入到你的证书中(我们可以从证书CSR中得到),通过以下的命令来查看输出的数字,同时比较这些数字:  
      $   openssl   x509   -noout   -text   -in   server.crt  
      $   openssl   rsa   -noout   -text   -in   server.key    
     
    他们必须一致,因为它们都是很长的串,所以可以通过下面的方法来查看:  
      $   openssl   x509   -noout   -modulus   -in   server.crt   |   openssl   md5  
      $   openssl   rsa   -noout   -modulus   -in   server.key   |   openssl   md5    
     
    这时比较两个短的数字串  
      $   openssl   req   -noout   -modulus   -in   server.csr   |   openssl   md5    

  • 相关阅读:
    FastJson---高性能JSON开发包
    mybatis中大于等于小于等于的写法
    MarkDown 使用说明示例
    Get和Post的参数传值
    规则引擎 资料收集
    ORA-01033错误解决方案
    mybatis 参数为String,用_parameter 取值
    php中实现记住密码下次自动登录的例子
    php 应用 bootstrap-fileinput 上传文件 插件 操作的方法
    AJAX 跨域请求
  • 原文地址:https://www.cnblogs.com/feihongwuhen/p/7171007.html
Copyright © 2011-2022 走看看