我在网上看了很多资料 由于水平有限 
所以就没有看的明白是不是部分网页用https,部分网页用http 就必须两中方式都可以访问某个网页
1.
其中有openssl用命令生成证书的
有用另外一个用ssl.ca-0.1.tar.gz 这个东西生成证书的 这两个有什么区别2.
装openssl的目的是什么 
--with-ssl=/usr/local/ssl 指定的作用是什么
然而我装好ssl后(https和http都可以访问) 删除ssl这个目录也是有效的 为何
3.
有下面一种方法加载ssl
将#Include conf/extra/httpd-ssl.conf 的#去掉 启用ssl
还有就是 ./bin/apachectl startssl
这个好像是版本的问题 不是很明确 4.
有的配置说需要什么ssl的so模块 这个又是什么 
在win32下是需要的 我也搞过(不过那时所有的网页都要以https访问 我只想部分用https)网上的说法不一 我快崩溃了 高手指教 

解决方案 »

  1.   

    1. 证书应该是生成二个,一个是发放给用户的,一个是服务器端的. 具体的也不太清楚2. openssl 是一个安全机制吧,也就是通过openssl生成证书。 可能是通 RSA,或者是其它加密算法,然后生成 公钥和密钥3. ssl是协议,在客户端和服务器端之间建立安全通道的协议4. 就不太清楚了..
      

  2.   

    用https访问的时候是经过ssl加密的,用http则是未加密的正常访问。具体可以看右下角IE显示出的加密符号。
      

  3.   

    楼上的回答好像没有对着我的问题
    我的理解
    1.
    openssl是个工具
    可以用命令的方式生成证书
    例如:# OpenSSL genrsa -des3 -out ca.key 1024
    不过这些参数不怎么好记
    之后就出现了比较容易的ssl.ca-0.1.tar.gz  不过这个需要安装openssl 要不然生成不了
    在安装apache的时候 一定要指定2.openssl只是用来生成证书用 证书生成后 就没有什么用了3.startctl startssl 是老的apache版本 新的就是include那个
    4.不知道。。还有一点 我看的资料 基本都是生成服务器端的证书 
    客户端为何可以不要 若是要 该如何处理 
      

  4.   

    http://topic.csdn.net/u/20090203/09/0b08ddec-fcd7-4558-ace9-c9c844cd74c2.html看看吧,当个参考
      

  5.   

    1.没区别。就像tcl电视与康佳电视一样,他们都是电视。2.目的就是让apache支持ssl。 --with-ssl的目的,就是让c编译器知道,编译apache的时候,需要用到ssl库的时候,在那个地方能找到ssl库3.不明白需要问的问题!老版本通常都是用apachectl startssl来启动的,新版本就是include那个ssl的配置文件4.so只是让ssl以apache的模块形式运行(支持)。需要部分网页支持ssl不清楚你需要是部分域名还是部分目录?部分域名就是配置虚拟主机时候加上支持ssl目录嘛,没有尝试过,不过应该和主机差不多!
      

  6.   

    我现在出现的问题是 http和https都可以访问网页 
    同时用http打开网页的时候 我用php 读端口的时候 却是443 
    我的目的是 http的时候端口用的是80 然后点击某个链接 需要ssl
    然后进入https访问 此时的端口是443
    就像淘宝之类的 不是所有网页需要https 还有一点 我只有一个虚拟主机
      

  7.   

    你的https是直接从根目录开始的还是写的alias 或者virtualHost?如果是直接放在/var/www 下边,那么你要修改http的conf 禁止http访问/var/www/
    如果写的alias 或者virtualHost 那么你只要去掉http conf 里边的这个alias 或者virtualHost 就ok了
      

  8.   


     ssl是协议,在客户端和服务器端之间建立安全通道的协议openSSL是一种工具,分客户端和服务器端服务器端的可以模块方式运行
      

  9.   

    你说的mod_ssl.so 是不是一个包里的 还是说是通过某种工具生成的
    还有加载了mod_ssl/so后 那个Include conf/extra/httpd-ssl.conf 还需要加吗
    为何我直接Include conf/extra/httpd-ssl.conf也成功了
      

  10.   

    没有加载mod_ssl.so,配置 conf/extra/httpd-ssl.conf 应该不行吧,apache都启动会出错
      

  11.   

    问题解决 

      两者都是工具,openssl功能很强大,生成证书是他的一部分功能
      后者在生成证书的时候 操作更简单
    2
     装openssl的目的就是生成证书,就算用ssl.ca-0.1.tar.gz 也是需要openssl的,要用到它的部分文件
    3
     将#Include conf/extra/httpd-ssl.conf 的#去掉 启用ssl (新的版本使用)
     老版本的apache就用# usr/local/apache2/bin/apachectl startssl 来启动ssl
    4
     -enable-ssl=static 将mod_ssl静态的编译到httpd服务中(动态编译还不成熟即so模块加载)以上是linux下的 win32下不一定就是一样的了
       
      

  12.   

    下面对httpd.conf 进行配置达到不同的需求
    conf/extra/httpd-ssl.conf文件里的配置不变1.整个目录下的web页面全部用http访问:
       这个就不用配置ssl了 见apache基本配置
    2.整个虚拟站点下的web页面全部用https访问:
      ServerName www.example.com:443
      Listen 80 => #Listen 80
    3.整个目录下的web页面实现部分http访问,部分https访问
    这种状况下 某个页面可以通过https访问,也可以通过http访问
    http和https之间的连接通过phpcode固定http头 实现
    ServerName www.example.com:80
    Listen 80
      

  13.   

    http://blog.csdn.net/fatOwen/article/details/4782028