跳转到内容

Apache/SSL

来自维基教科书,开放的书籍,开放的世界

安装和配置带有 PHP5 和 SSL 支持的 Apache2

必需的软件包

[编辑 | 编辑源代码]
apache2
openssl ssl-cert
libapache2-mod-php5 
php5-cli 
php5-common 
php5-cgi

配置步骤

[编辑 | 编辑源代码]

步骤 1:生成证书

[编辑 | 编辑源代码]

要生成证书,请使用以下命令:

 sudo openssl req $@ -new -x509 -days 365 -nodes -out /etc/apache2/apache.pem -
 keyout /etc/apache2/apache.pem

您将被要求输入将被纳入您的证书请求的信息。

您即将输入的是所谓的“可辨别名称”(DN)。有很多字段,但您可以留空一些。对于某些字段,将有一个默认值。如果您输入“.”,该字段将被留空。

Country Name (2 letter code) [AU]:IN
State or Province Name (full name) [Some-State]:West Bengal
Locality Name (eg, city) []:Kolkata
Organization Name (eg, company) [Internet Widgits Pty Ltd]:MAT3 Impex Pvt. Ltd.
Organizational Unit Name (eg, section) []:Crypto-Devel
Common Name (eg, YOUR name) []:Promathesh Mandal
Email Address []:[email protected]

这将完成证书,现在您需要确保您对 .pem 文件具有正确的权限,如果没有,请使用以下命令设置正确的权限。

 sudo chmod 600 /etc/apache2/apache.pem

注意:要生成证书签名请求,请使用以下命令:

 sudo openssl req -new -key apache.pem -out chikpea.csr

步骤 2:监听端口

[编辑 | 编辑源代码]

默认情况下,服务器将在端口 80 上监听传入的 HTTP 请求,而不是在端口 443 上监听 SSL 连接。因此,您需要启用 SSL 支持,方法是在 /etc/apache2/ports.conf 文件中添加以下条目,保存并退出文件。

 Listen 443

步骤 3:启用 SSL 支持

[编辑 | 编辑源代码]

如果要为 Apache Web 服务器启用 SSL 支持,则需要使用以下命令。

 sudo a2enmod ssl

已安装模块 ssl;运行 /etc/init.d/apache2 force-reload 以启用。现在,您需要使用以下命令重新启动 Apache2 服务器。

 sudo /etc/init.d/apache2 restart

步骤 4:将 SSL 证书配置到 Apache2 中的虚拟主机

[编辑 | 编辑源代码]

首先,您需要编辑 /etc/apache2/sites-available/default 文件,更改

 NameVirtualHost *

 NameVirtualHost *:80
 NameVirtualHost *:443

现在,您需要使用端口 80 配置虚拟主机。

 ServerAdmin webmaster@localhost
 .
 .
 .

使用端口 443 配置虚拟主机,主要区别在于您需要为每个 SSL 主机使用以下两行。

 SSLEngine on
 SSLCertificateFile /etc/apache2/apache.pem

示例

 ServerAdmin webmaster@localhost
 .
 .
 .
 SSLEngine on
 SSLCertificateFile /etc/apache2/apache.pem

现在,您需要使用以下命令重新启动 Apache Web 服务器。

 sudo /etc/init.d/apache2 reload

示例文件: “ports.conf” 文件的示例

 Listen 80 
 Listen 443

“default” 文件的示例

 NameVirtualHost *:80
 NameVirtualHost *:443
 <VirtualHost *:80>
 	DocumentRoot /var/www/
 	<Directory />
  		Options FollowSymLinks
 		AllowOverride None
  	</Directory>
 	<Directory /var/www/>
 		Options Indexes FollowSymLinks MultiViews
 		AllowOverride None
 		Order allow,deny
 		allow from all
 		# This directive allows us to have apache2's default start page
                 # in /apache2-default/, but still have / go to the right place
                 #RedirectMatch ^/$ /apache2-default/
 	</Directory> 
 	ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
 	<Directory "/usr/lib/cgi-bin">
 		AllowOverride None
 		Options ExecCGI -MultiViews +SymLinksIfOwnerMatch
 		Order allow,deny
 		Allow from all
 	</Directory> 
 	ErrorLog /var/log/apache2/error.log 
 	# Possible values include: debug, info, notice, warn, error, crit,
 	# alert, emerg.
 	LogLevel warn
 	CustomLog /var/log/apache2/access.log combined
 	ServerSignature On 
     Alias /doc/ "/usr/share/doc/"
     <Directory "/usr/share/doc/">
         Options Indexes MultiViews FollowSymLinks
         AllowOverride None
         Order deny,allow
         Deny from all
         Allow from 127.0.0.0/255.0.0.0 ::1/128
     </Directory> 
  </VirtualHost> 
  <VirtualHost *:443>
 	ServerAdmin webmaster@localhost
 	SSLEngine on
 	SSLCertificateFile /etc/apache2/apache.pem 	
 	DocumentRoot /var/www/
 	<Directory />
 		Options FollowSymLinks
 		AllowOverride None
 	</Directory>
 	<Directory /var/www/>
 		Options Indexes FollowSymLinks MultiViews
 		AllowOverride None
 		Order allow,deny
 		allow from all
 		# This directive allows us to have apache2's default start page
                 # in /apache2-default/, but still have / go to the right place
                 #RedirectMatch ^/$ /apache2-default/
 	</Directory>
 	ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
 	<Directory "/usr/lib/cgi-bin">
 		AllowOverride None
 		Options ExecCGI -MultiViews +SymLinksIfOwnerMatch
 		Order allow,deny
 		Allow from all
 	</Directory>
 	ErrorLog /var/log/apache2/error.log
 	# Possible values include: debug, info, notice, warn, error, crit,
 	# alert, emerg.
 	LogLevel warn
 	CustomLog /var/log/apache2/access.log combined
 	ServerSignature On
     Alias /doc/ "/usr/share/doc/"
     <Directory "/usr/share/doc/">
         Options Indexes MultiViews FollowSymLinks
         AllowOverride None
         Order deny,allow
         Deny from all
         Allow from 127.0.0.0/255.0.0.0 ::1/128
     </Directory>
   </VirtualHost>
华夏公益教科书