引用 | 编辑
tanda
2004-11-29 23:46 |
1楼
▲ |
在 Apache + SSL 在 Win32 的部分, 说真的实在不好找
你们可以参考一下 The Apache + SSL on Win32 HOWTO 的做法 当然照着上边做也没关系, 每个人有每个人的做法看个人吧试试看就知道了 虽然我是自己 Compile 来装的, 但我打字比较懒了点, Compile 教学的部分 请自行参考 OpenSSL 跟 mod_ssl 的内附文件 For Win32 基本上只要架好 Apache + SSL 其他如 ActivePerl, MySQL ,PHP 都可以慢慢加进来 在 Hunter 这里可以找到已经编译好的,视个人需要自行取用, 记得寄封Email谢谢人家喔!! 以下列出最快的安装方式供参考, 原理....自己看各套件的内文说明 安装所需档案 Apache_2.0.49-Openssl_0.9.7d-Win32.zip openssl.cnf (在那个 here 连结) 01. 建议最好先装 Apache 2.0.49 再来解压缩 Apache_2.0.49-Openssl_0.9.7d-Win32.zip, 记得解压缩后修改路径直接覆盖原来安装的档案上 02. 基本上您已经完成 Apache + mod_ssl + OpenSSL 的安装了 接下来得先开始设定您的 httpd.conf 找到 Listen 80 (不能注解掉喔, 至少知道你的网站是活的) 找到 LoadModule ssl_module modules/mod_ssl.so (不能注解掉喔, 要开 SSL 要靠这支 Modules 了) 03. 这里预设您除了正常网站外同一个 IP 或 DomainName 上同时有 SSL 所以, 您除了设定您一般的网站路径外 VirtualHost 也要一并设定 04. 以 Name-Based 为例, 其他请依实际安装为准 记得这里的设定一定要跟上边的一样, 不然你的主网页会找不到喔 NameVirtualHost *:80 <VirtualHost *:80> ServerAdmin 您的email DocumentRoot "/您网页的实际路径" ServerName DomainName:80 ErrorLog logs/DomainName_error_log CustomLog logs/DomainName_access_log common </VirtualHost> 05. 再这边您可以稍微注意一下上边有 Include conf/ssl.conf 没错!! 接下来就是设定 SSL 要开的网页设定, 暂时先不教产生凭证 Key 的方法 既然再同一个目录先做设定的部分 找到 SSLMutex file:logs/ssl_mutex 并注解掉, Win32 上不支援此方式, 所以您可以改用 SSLMutex none 或是 SSLMutex default 接下来仍是 VirtualHost 的设定 找到 <VirtualHost _default_:443> 改用 <VirtualHost *:443> DocumentRoot "/您网页的实际路径" ServerAdmin 您的email ServerName DomainName:443 ErrorLog logs/ssl_error_log TransferLog logs/ssl_access_log 找到 #SSLCertificateChainFile conf/ssl.crt/ca.crt 把注解拿掉(要自己发给自己的话) 找到 #SSLCACertificatePath conf/ssl.crt 把注解拿掉(要自己发给自己的话) 增加 SSLCACertificateFile conf/ssl.crt/ca.crt 06. 到此已完成设定的基本工作了, 这里我稍微保留一下, 您可以暂时不用理会 找到 <IfDefine SSL> 跟 </IfDefine SSL> 我是注解掉的(懒得改启动设定), 如果您在 启动 Apache 时, 仍无法让您的 SSL 动作的话才跟着做这项 07. 接下来要开始制作认证的凭证准备阶段 请切换至 Apache 的 bin 目录下, 把您下载的 openssl.cnf 置于此 并修改一下 [ CA_default ] 内的内容如下(既然是懒人法请跟着做喔!!其他倒是无关紧要) dir = ssl certs = $dir\\certs crl_dir = $dir\\crl database = $dir\\index.txt new_certs_dir = $dir certificate = $dir\\cacert.pem serial = $dir\\serial crl = $dir\\crl.pem private_key = $dir\\privkey.pem RANDFILE = $dir\\privkey.rnd 08. 依上述于 bin 目录下新增一个 ssl 目录 在 ssl 目录内新增 index.txt 档, 内容空白就好 在 ssl 目录内新增 serial 档, 内容请填 01 就好 09. 切换回 Apache 的 bin 目录下吧!! 这里我们要用命令提示字元 或 Win-DOS 视窗来设定, 所以为方便起见, 请设为 Apache 的 bin 目录下 当然您要写成 *.BAT 省在视窗下打那些重复执行的指令也行, 假设我们自己要发给自己 CA 认证 当然 CAroot 一定是自己并加签给自己 10. 产生 CA Private Key -- 执行 openSSL genrsa -des3 -out ssl/ca.key 1024 1024 为使用 128-bit 加密, 并输入您的安全密码 11. 产生 CA Require 凭证需求 执行 openssl req -config openssl.cnf -new -key ssl/ca.key -out ssl/ca.csr 输入您的申请书资料, 这里的可以用 "." 来当无资料输入使用, Domain 或 Websit 在这并无特殊指定输入, 请依显示输入既可 12. 产生 CA Public Crt 凭证 -- 执行 openssl x509 -days 3650 -req -signkey ssl/ca.key -in ssl/ca.csr -out ssl/ca.crt 预设是 30 天过期, 3650 是约 10 年 13. 接下来, 我们要为自己的 Server 或是个人加签凭证, 这里以 Server 为例 产生 Server Private Key -- 执行 openSSL genrsa -out ssl/server.key 1024 这里预设 Server Private Key 不设定安全密码以免无人值守时电脑关机重开无法启动 Apache (因为要密码才能启动) 这我倒没在 Win32 试过, Unix-Like 铁定会要求密码 14. 产生 Server Require 凭证需求 -- 执行 openssl req -config openssl.cnf -new -key ssl/server.key -out ssl/server.csr 输入您的申请书资料, 跟上边的一样, 不过这里的 Domain 或 Websit 在这最好填入您的 DomainName 或 主机全名(Host.DomainName) 15. 产生 Server Public Crt 凭证 -- 执行 openssl ca -config openssl.cnf -days 3650 -cert ssl/ca.crt -keyfile ssl/ca.key -in ssl/server.csr -out ssl/server.crt 输入您的 CA Private Key 安全密码完成制作手续 16. 现在您的 ssl 目录下已经有了必要的档案, 接下来开始复制到所需的路径下 请在 Apache 下之 conf 目录下建 ssl.crt 与 ssl.key 这 2 个目录 将 ca.crt 与 server.crt 复制至 conf/ssl.crt 下 将 server.key 复制至 conf/ssl.key 下 17. OK!!万事具备了, 启动您的 Apache 吧!! 不放心的话用 apache -t 看一下语法有无错误 启动后先用一般网页(http://DomainName 或 http://Host.DomainName)开看看应该没问题 18. 再来试试 Port 443 (http://DomainName:443 或 http://Host.DomainName:443) 应该会告诉你是一个错误的请求如下 Bad request! Your browser (or proxy) sent a request that this server could not understand. If you think this is a server error, please contact the webmaster. Error 400 这时您可以直接使用 https://DomainName 或 https://Host.DomainName 来进入 SSL 的网页了(后面呢...自己认证吧!!) 19. 注意喔!!右下角的金钥喔!! 因为您的电脑尚未取得 Server 的认证, 所以检验凭证时, 记得要安装 Server 凭证(server.crt)喔!! 又因为 Server 的认证未经授权单位认可, 所以检验凭证时, 记得要安装 CA 凭证(ca.crt)喔!! 您可以将 ca.crt 与 server.crt 公开给人下载安装以取得拥有属于您自己的实验性网站的认证 20. 认证实际运作可按此参考看看 手打的好酸......噗!! x0 |