zoukankan      html  css  js  c++  java
  • Apache SSL服务器配置SSL详解

    Apache SSL服务器配置SSL详解,需要的朋友可以参考下。
    1.安装必要的软件 
    引用 
    我用的是apahce2.0.61版,可以直接官方提供的绑定openssl的apache. 
    文件名是:apache_2.0.61-win32-x86-openssl-0.9.7m.msi 

    否则单独安装windows下的openssl比较麻烦,要么找到一个第三方的编译结果,要么自己编译 

    2. 生成服务器证书 
    引用 
    安装好在bin目录下有一个 openssl.exe文件,用来生成证书和密钥。 
    1). 生成服务器用的私钥文件server.key 
    进入conf目录,执行命令行 
    openssl genrsa -out server.key 1024 

    有文档指出使用 openssl genrsa -des3 -out server.key 1024 生成私钥文件,这样生成的私钥文件是需要口令的。 
    Apache启动失败,错误提示是:Init: SSLPassPhraseDialog builtin is not supported on Win32 (key file .....) 
    原因是window下的apache不支持加密的私钥文件。 

    2). 生成未签署的server.csr 
    进入conf目录,执行命令行 
    openssl req -new -key server.key -out server.csr -config openssl.cnf 
    提示输入一系列的参数, 
    ...... 
    Country Name (2 letter code) [AU]: 
    State or Province Name (full name) [Some-State]: 
    Locality Name (eg, city) []: 
    Organization Name (eg, company) [Internet Widgits Pty Ltd]: 
    Organizational Unit Name (eg, section) []: 
    Common Name (eg, YOUR name) []: 
    Email Address []: 
    ..... 
    注:Common Name必须和httpd.conf中server name必须一致,否则apache不能启动 
    启动apache时错误提示为:RSA server certificate CommonName (CN) `Koda' does NOT match server name!? 

    3). 签署服务器证书文件server.crt 
    进入conf目录,执行命令行 
    openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt 

    以上签署证书仅仅做测试用,真正运行的时候,应该将CSR发送到一个CA返回真正的用书.网上有些文档描述生成证书文件的过程比较繁琐,就是因为 
    他们自己建立了一个CA中心证书,然后再签署server.csr. 

    用openssl x509 -noout -text -in server.crt可以查看证书的内容。证书实际上包含了Public Key. 

    3. 配置httpd.conf. 
    引用 
    在conf目录下的ssl.conf文件是关于ssl的配置,是httpd.conf的一部分。 
    找到一个443的虚拟主机配置项,如下: 
     
    SSLEngine On 
    SSLCertificateFile conf/ssl.crt/server.crt 
    SSLCertificateKeyFile conf/ssl.key/server.key 
    #SSLCertificateChainFile conf/ssl.crt/ca.crt // 暂未启用 
    #...... 
    DocumentRoot "C:/programs/Apache2/htdocs" 
    ServerName www.my.com:443 
     
    1). 看SSLCertificateFile,SSLCertificateKeyFile两个配置项,所以应该在conf下建立两个子目录ssl.crt, ssl.key,然后把签署过的证书文件(.crt)和私钥文件(.key)放在相应的目录 
    2). 看DocumentRoot,ServerName配置项,ServerName修改为任意你想要得域名,注意:前面生成.csr时输入的Common Name必须于这里的ServerName项一致。 
    这样启动apache后,访问https://www.my.com将访问C:/programs/Apache2/htdocs目录下的内容。 
    但是如果你想保留其他目录的访问仍然是http,那么你应该把 
    也改为  
    此时,即便ServerName是任意的,系统仍然正常运行,仅仅Apache log提示"does NOT match server name" 
    3). 移除注释行 
    LoadModule ssl_module modules/mod_ssl.so 

    注意到ssl.conf的配置都在标签中,所以为了使IfDefine 指令有效,运行apache 的时候要加上 -D SSL 参数。 

    引用 
    apache -D SSL -k start



  • 相关阅读:
    CodeForces 288A Polo the Penguin and Strings (水题)
    CodeForces 289B Polo the Penguin and Matrix (数学,中位数)
    CodeForces 289A Polo the Penguin and Segments (水题)
    CodeForces 540C Ice Cave (BFS)
    网站后台模板
    雅图CAD
    mbps
    WCF学习-协议绑定
    数据库建表经验总结
    资源位置
  • 原文地址:https://www.cnblogs.com/liuzhuqing/p/7480183.html
Copyright © 2011-2022 走看看