LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 4387|回复: 4

Debian下给apache加载ssl

[复制链接]
发表于 2003-10-28 08:34:16 | 显示全部楼层 |阅读模式
在Debian下建好了apache1.3.28+php4+mysql,现在加ssl
要有openssl,没有,debian应该会apt上吧

1. apt-get install libapache-mod-ssl   (carlos提示的,我在debian.org里搜,ssl就没找到),lib 会装在 /usr/lib/apache/1.3/ 里
2. modules-config apache enable mod_ssl  (注:如果之后,php不起作用了,就再加一次mod_php4)
3. 修改 httpd.conf
   添加  Port 80
         Listen 80
         Listen 443
   添加  虚拟机(不一定非用,也可以把下列ssl配置加在全局配置里,不过,每个页面都跳出认证,原因没多想,反正虚拟机方便,网上都是这么干的)
         <VirtualHost _default_:443>
               ServerName your.server.name
            DocumentRoot /var/www
            SSLCertificateKeyFile server.key (下面生成)
            SSLCertificateFile server.crt (同上 )
         </VirtualHost>

4. 生成证书

以下照抄 <<Apache安装MOD_SSL的补充--手工签署证书的方法>> 一文  永远的unix http://www.fanqiang.com/a6/b8/20010722/1305001004.html
以下操作都在 /etc/apache/ 里执行,至于证书该放在哪里? 自己看着办吧,我没经验

先建立一个 CA 的证书,
首先为 CA 创建一个 RSA 私用密钥,
[S-1]
openssl genrsa -des3 -out ca.key 1024
系统提示输入 PEM pass phrase,也就是密码,输入后牢记它。
生成 ca.key 文件,将文件属性改为400,并放在安全的地方。
[S-2]
chmod 400 ca.key
你可以用下列命令查看它的内容,
[S-3]
openssl rsa -noout -text -in ca.key

利用 CA 的 RSA 密钥创建一个自签署的 CA 证书(X.509结构)
[S-4]
openssl req -new -x509 -days 3650 -key ca.key -out ca.crt
然后需要输入下列信息:
Country Name: cn 两个字母的国家代号
State or Province Name: An Hui 省份名称
Locality Name: Bengbu 城市名称
Organization Name: Family Network 公司名称
Organizational Unit Name: Home 部门名称
Common Name: Chen Yang 你的姓名     
Email Address: sunstorm@263.net Email地址
生成 ca.crt 文件,将文件属性改为400,并放在安全的地方。
[S-5]
chmod 400 ca.crt
你可以用下列命令查看它的内容,
[S-6]
openssl x509 -noout -text -in ca.crt


下面要创建服务器证书签署请求,
首先为你的 Apache 创建一个 RSA 私用密钥:
[S-7]
openssl genrsa -des3 -out server.key 1024
这里也要设定pass phrase。
生成 server.key 文件,将文件属性改为400,并放在安全的地方。
[S-8]
chmod 400 server.key
你可以用下列命令查看它的内容,
[S-9]
openssl rsa -noout -text -in server.key

用 server.key 生成证书签署请求 CSR.
[S-10]
openssl req -new -key server.key -out server.csr
这里也要输入一些信息,和[S-4]中的内容类似。
至于 'extra' attributes 不用输入。

你可以查看 CSR 的细节
[S-11]
openssl req -noout -text -in server.csr

下面可以签署证书了,需要用到脚本 sign.sh  ---->脚本在 /usr/share/doc/libapache-mod-ssl/example/ 里 我就直接cp 到/etc/apache/里了
[S-12]
sign.sh server.csr
就可以得到server.crt。
将文件属性改为400,并放在安全的地方。
[S-13]
chmod 400 server.crt

删除CSR
[S-14]
rm server.csr

好了,apachectl restart 吧。ssl在全局的配置,最好在load modules之后,要不apache起不了,还不报哪里错。
好了,试试 https://your.server.name/ 吧,一切正常,应该跳出认证表单,可惜提示,不可信任,呵呵。
 楼主| 发表于 2003-10-28 10:55:17 | 显示全部楼层
咦?没人回复,都加了精华!嘿嘿,谢谢版主。
发表于 2003-10-28 18:30:54 | 显示全部楼层
好文!!

认证加密 是趋势,

这个要掌握!!
发表于 2003-10-30 12:42:53 | 显示全部楼层
提示“不可信任”的原因是因为证书是由自己创建的CA签名的,而不是由“官方”的CA签名。解决的办法当然也是两种:要么向官方CA申请为你的网站证书签名,要么请每个浏览者将你创建的CA根证书作为受信任的根证书导入到系统中。
发表于 2008-4-16 18:17:06 | 显示全部楼层
S12  步骤12 中
sign.sh 现在哪里去找 有什么替代的么?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表