个人工具
登录
查看“Serverguide”的源代码 - Ubuntu中文
页面
讨论
查看源代码
历史
搜索
导航
首页
最近更改
随机页面
页面分类
帮助
编辑
编辑指南
沙盒
新闻动态
字词处理
工具
链入页面
相关更改
特殊页面
页面信息
查看“Serverguide”的源代码
来自Ubuntu中文
←
Serverguide
跳转至:
导航
,
搜索
因为以下原因,你没有权限编辑本页:
您所请求的操作仅限于该用户组的用户使用:
用户
您可以查看与复制此页面的源代码。
===== 4.10.3. HTTPS 配置 ===== The mod_ssl 模块为 Apache2 服务器添加了一个重要的功能 - 通讯加密的能力。因此,当您的浏览器要用 SSL 加密通讯时,需要在浏览器导航栏中在输入的统一资源定位器 (URL) 的开始处使用 https:// 前缀。 mod_ssl 模块已经包含在 apache2-common 软件包中。如果您安装该软件包,您可以在终端提示符之后执行下列命令启用 mod_ssl 模块: <pre><nowiki> sudo a2enmod ssl</nowiki></pre> ====== 4.10.3.1. 证书和安全 ====== 要设置您的安全服务器,使用公共钥创建一对公钥私钥对。大多数情况下,您发送您的证书请求 (包括您的公钥),您公司证明材料以及费用到一个证书颁发机构 (CA)。CA 检证证书请求及您的身份,然后将证书发回您的安全服务器。 还有种办法就是您可以创建您自己签署的证书。然而请注意自己签置的证书不应该用于生产环境。自已签署的证书不会被用户浏览器自动接受。浏览器将提示用户接受证书并创建一个安全的连接。 一旦您有一个自己签署的证书或一个您选择的 CA 签署的证书,您需要将它安装在您的安全服务器上。 ====== 4.10.3.2. 证书类型 ====== 您需要一个钥匙和一个证书来操作您的安全服务器,这意味着您可以生成自己签署的证书或购买 CA 签署的证书。由 CA 签署的证书为您的服务器提供两个重要的功能: **** 浏览器 (通常) 会自动地识别证书并且在不提示用户的情况下允许创建一个安全连接。 **** 当一个 CA 生成一个签署过的证书,它为提供网页给浏览器的组织提供身份担保。 多数支持 SSL 的 Web 浏览器都有一个 CA 列表,它们的证书会被自动接受。如果一个浏览器遇到一个其授权 CA 并不在列表中的证书,浏览器将询问用户是否接受或拒绝连接。 您可以为您的安全服务器生成一个自己签署的证书,但要知道自己签署的证书并不提供与 CA 签署的证书相同的功能。自己签署的证书不会被多数 Web 浏览器自动识别,而且自己签署的证书也不为任何提供网站的组织提供担保。CA 签署的证书为安全服务器提供所有这些重要的功能。从 CA 得到证书的过程相当容易。下面简要介绍一下: *** 创建一个私有和公共密钥对 *** 基于公钥创建一个证书请求。证书请求包含您服务器及公司信息。 *** 发送证书请求,并随之提供您的身份文档到一个 CA。我们不能告诉您选择哪个证书颁发机构。您可以基于您以往的经验或您朋友或同事的经验或纯粹基于经济因素来决定。 一旦您选定一家 CA,您需要根据他们所提供的规程来从他们那里获得证书。 *** 当 CA 确定您确实如您所声称的那样时,他们将发给您一个数字证书。 *** 在您的安全服务器上安装该证书,并开始进行安全事务处理 无论您是从一家 CA 那儿获得证书或是生成您自己签署的证书,第一步就是生成钥匙。 ====== 4.10.3.3. 生成一个证书签署请求 (CSR) ====== 要生成证书签署请求 (CSR),您应该创建您自己的钥匙。您可以在终端提示符后运行以下命令以创建钥匙: <pre><nowiki> openssl genrsa -des3 -out server.key 1024</nowiki></pre> <pre><nowiki> Generating RSA private key, 1024 bit long modulus .....................++++++ .................++++++ unable to write 'random state' e is 65537 (0x10001) Enter pass phrase for server.key:</nowiki></pre> 您现在可以输入您的 passphrase。为了最大程度的安全,它至少应该包含八个字符。当指定 -des3 时最小长度为四个字符。它应该包含数字和/或标点符号,并且不应该是字典中的单词。也请记住您的 passphrase 是大小写敏感的。 再次输入 passphrase 核对。一旦您再次输入正确的话,服务器密钥就生成了并保存在 server.key 文件中。 您也可以不用 passphrase 来运行您的安全 Web 服务器。这样比较方便,因为在您启动您的安全 Web 服务器时您不需要每次都输入 passphrase。但它也是相当不安全的,钥匙的风险也同样意味着服务器的风险。 在任何情况下,您都可以选择不用 passphrase 来运行您的安全 Web 服务器,这可以通过在生成时不带 -des3 参数来实现或者通过在终端提示符后执行以下命令: <pre><nowiki> openssl rsa -in server.key -out server.key.insecure</nowiki></pre> 一旦您运行上述命令,不安全的钥匙将被保存在 server.key.insecure 文件中。您可以使用该文件来生成没有 passphrase 的 CSR。 要创建 CSR,可以在终端提示符后运行以下命令: <pre><nowiki> openssl req -new -key server.key -out server.csr</nowiki></pre> 它将提示您输入 passphrase。如果您输入正确的 passphrase,它将提示您输入公司名、站点名、邮件ID等。一旦您输入了所有内容,您的 CSR 将被创建并被保存在 server.csr 文件中。您可以提交该 CSR 文件给一家 CA 去处理。CA 将使用该 CSR 并颁发证书。但是,您也可以使用该 CSR 生成自己签署的证书。 ====== 4.10.3.4. 创建一个自己签署的证书 ====== 要创建自己签署的证书,在终端提示符下运行以下命令: <pre><nowiki> openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt</nowiki></pre> 上述命令将提示您输入 passphrase。一旦您输入正确的 passphrase,您的证书将被创建并将保存在 server.crt 文件中。 如果您的安全服务器被用在生产环境中,你也许需要 CA 签署的证书。并不推荐使用自己签署的证书。 ====== 4.10.3.5. 安装证书 ====== 您可以安装钥匙文件 server.key 和证书文件 server.crt 或由您的 CA 颁发的证书文件,在终端提示符后运行以下命令: <pre><nowiki> sudo cp server.crt /etc/ssl/certs sudo cp server.key /etc/ssl/private</nowiki></pre> 您要添加以下四行到 /etc/apache2/sites-available/default 文件或您安全虚拟主机的配置文件。您要将它们放在 VirtualHost 部分。他们应该放在 DocumentRoot 行下面: <pre><nowiki> SSLEngine on SSLOptions +FakeBasicAuth +ExportCertData +CompatEnvVars +StrictRequire SSLCertificateFile /etc/ssl/certs/server.crt SSLCertificateKeyFile /etc/ssl/private/server.key</nowiki></pre> HTTPS 在 443 端口监听。您可以将下面一行添加到 /etc/apache2/ports.conf 文件中: <pre><nowiki> Listen 443</nowiki></pre> ====== 4.10.3.6. 访问服务器 ====== 一旦您安装了您的证书,您应该重启您的 Web 服务器。您可以在终端提示符后运行以下命令以重启您的 web 服务器: <pre><nowiki> sudo /etc/init.d/apache2 restart</nowiki></pre> 您应该记住并在每次您启动您的安全 web 服务器时输入 passphrase。 您将被提示输入 passphrase。一旦您输入正常的 passphrase,将启动安全 web 服务器。您可以通过在您的浏览器地址栏上输入 https://your_hostname/url/ 来访问安全服务器的页面。
返回至
Serverguide
。