我正在尝试为运行 Debian 8 (Jessie) 的 lighttpd Web 服务器设置 ssl(即 https)。
lighttpd.conf 中的相关行是:
server.modules = (
"mod_access",
"mod_alias",
"mod_compress",
"mod_redirect",
"mod_ssi",
"mod_fastcgi",
"mod_auth",
"mod_rewrite",
"mod_proxy",
"mod_ssl",
)
$SERVER["socket"] =~ "111.11.22.33:443" {
server.document-root = "/var/www/html"
ssl.engine = "enable"
ssl.pemfile = "/etc/lighttpd/ssl/mydomain.com/mydomain.com.pem"
}
Run Code Online (Sandbox Code Playgroud)
该文件mydomain.com.pem是自行发布并就位的。
然后我启动服务并检查是否一切正常:
# /etc/init.d/lighttpd restart
[ ok ] Restarting lighttpd (via systemctl): lighttpd.service.
# systemctl status lighttpd.service
? lighttpd.service - Lighttpd Daemon
Loaded: loaded (/lib/systemd/system/lighttpd.service; enabled)
Active: failed (Result: exit-code) since Mi 2015-09-02 19:55:57 CEST; 5s ago
Process: …Run Code Online (Sandbox Code Playgroud) 我需要在服务器上的相同主机名上同时运行 http 和 https。我在 /etc/httpd/conf.d 目录中配置了主机的情况下在没有 SSL 的情况下运行了所有内容。
System: CentOS release 5.6 (Final)
Server: Apache/2.2.3
Run Code Online (Sandbox Code Playgroud)
我按照这里的说明操作:http : //shapeshed.com/journal/setting_up_mod_ssl_on_apache_centos_52/
但现在:
sudo /etc/init.d/httpd restart
Run Code Online (Sandbox Code Playgroud)
回应:
Starting httpd: (98)Address already in use: make_sock: could not bind to address [::]:443
(98)Address already in use: make_sock: could not bind to address 0.0.0.0:443
no listening sockets available, shutting down
Unable to open logs
[FAILED]
Run Code Online (Sandbox Code Playgroud)
在 /etc/httpd/conf/httpd.conf 的底部,我有:
NameVirtualHost *:80
Run Code Online (Sandbox Code Playgroud)
我尝试在其下方添加NameVirtualHost *:443,但没有帮助。
还有一件事:Webmin 之前已安装,并且已经在http://XXX.XXX.XXX.XXX:10000 上运行
这可能是一个因素吗?
任何帮助将不胜感激; 正如您可能会说我在谷歌飞来飞去,我以前没有这样做过。
谢谢!
我有一个 virtualhost 指令,如果输入无效的子域,它会提供自定义 404 错误:
<VirtualHost *:80> # the first virtual host
ServerName site_not_found
RedirectMatch 404 ^/(?!custom_error)
</VirtualHost>
<VirtualHost *:80>
ServerName example.com
ServerAlias ??.example.com
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
我想设置一个虚拟主机以通过 HTTPS 连接显示相同的自定义错误。我尝试了以下方法:
<VirtualHost *:443> # the first virtual host
ServerName site_not_found
RedirectMatch 404 ^/(?!custom_error)
</VirtualHost>
<VirtualHost *:443>
ServerName example.com
ServerAlias ??.example.com
# SSL options, other options, and stuff defined here.
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
但是服务器不会启动并发出错误:
服务器应该是 SSL-aware 但没有配置证书 [提示:SSLCertificateFile] ((null):0)
即使没有为这个虚拟主机打开 SSLEngine,似乎也需要 SSL 证书。除了提供证书之外,还有没有办法解决这个问题?关闭模块不是一个选项,因为我需要为虚拟服务器 example.com 使用 SSL。
我在让 proxypass 在 apache 中工作时遇到问题。
我的配置文件如下:
<VirtualHost 1.2.3.4:443>
ServerName example.com
ServerAlias www.example.org
ServerAdmin info@example.org
DocumentRoot /home/admin/web/knyz.org/public_html
ScriptAlias /cgi-bin/ /home/admin/web/knyz.org/cgi-bin/
Alias /vstats/ /home/admin/web/knyz.org/stats/
Alias /error/ /home/admin/web/knyz.org/document_errors/
#SuexecUserGroup admin admin
CustomLog /var/log/apache2/domains/knyz.org.bytes bytes
CustomLog /var/log/apache2/domains/knyz.org.log combined
ErrorLog /var/log/apache2/domains/knyz.org.error.log
<Directory /home/admin/web/knyz.org/public_html>
AllowOverride All
SSLRequireSSL
Options +Includes -Indexes +ExecCGI
</Directory>
<Directory /home/admin/web/knyz.org/stats>
AllowOverride All
</Directory>
SSLEngine on
SSLVerifyClient none
SSLCertificateFile /home/admin/conf/web/ssl.knyz.org.crt
SSLCertificateKeyFile /home/admin/conf/web/ssl.knyz.org.key
SSLCertificateChainFile /home/admin/conf/web/ssl.knyz.org.ca
<IfModule mod_ruid2.c>
RMode config
RUidGid admin admin
RGroups www-data
</IfModule>
<IfModule itk.c>
AssignUserID admin admin
</IfModule>
IncludeOptional /home/admin/conf/web/sapache2.knyz.org.conf*
##ISSUE …Run Code Online (Sandbox Code Playgroud) 运行:CentOS6 x64
当我重新启动 httpd 时,出现以下错误。我错过了什么?
[root@localhost ~]# service httpd restart
Stopping httpd: [ OK ]
Starting httpd: Syntax error on line 22 of /etc/httpd/conf.d/sites.conf:
Invalid command 'SSLEngine', perhaps misspelled or defined by a module not included in the server configuration
Run Code Online (Sandbox Code Playgroud)
我已经使用安装了 mod_ssl yum install mod_ssl
Package 1:mod_ssl-2.2.15-15.el6.centos.x86_64 already installed and latest version
Run Code Online (Sandbox Code Playgroud)
我的sites.conf 看起来像这样
<VirtualHost *:80>
# ServerName shop.itmanx.com
ServerAdmin webmaster@itmanx.com
DocumentRoot /var/www/html/magento
<Directory /var/www/html>
Options -Indexes
AllowOverride All
</Directory>
ErrorLog logs/shop-error.log
CustomLog logs/shop-access.log
</VirtualHost>
<VirtualHost *:443>
ServerName secure.itmanx.com
ServerAdmin …Run Code Online (Sandbox Code Playgroud) 我对在下面引用的文章中构建架构很感兴趣。
我目前有一个价格适中的第 4 层负载平衡器,我的应用程序服务器是 SSL 端点。我想在我的负载平衡器和我的应用程序服务器之间放置一个 SSL 服务器群。然后我将在 SSL 场和我的应用服务器之间放置另一个廉价的负载平衡器,以进行第 7 层路由。

我的 Web 应用程序具有相当高的消费者流量,6 个服务器可以处理大约 50% 的容量。此外,我的基础设施流量比我的消费者流量大几个数量级。这是来自世界各地的数据,必须与我的 Web 应用程序实时集成。我总共有 18 个应用服务器来处理所有流量,另外还有 6 个数据库服务器。我将在接下来的 2 周内再添加 6 个应用服务器,并在之后的 2 周内再添加 6 个。保守地说,我估计到今年年底我需要扩展到 120 台服务器。
我现在的动机是将消费者流量与基础设施流量分开。消费者流量的优先级高于基础设施流量,我不能允许基础设施方面的踩踏事件关闭我面向消费者的服务器。拥有一个永远在线的网站是重中之重。但是,如果其中一个消费者应用服务器出现故障,我想将该流量路由到为基础架构流量指定的服务器。
复杂的是,所有流量都使用相同的主机名寻址,并且几乎 100% 是 https。在我的例子中,区分基础设施和消费者流量的唯一方法是通过 URL(我继承的糟糕的架构),所以我需要一个第 7 层负载均衡器来进行路由。然而,为了让它工作,我需要一个基于硬件的 SSL 终止器或一个如上所述的 SSL 服务器群。因为我的用户群正在迅速扩展,我担心如果我沿着硬件路径走下去,它会很快变得非常昂贵,特别是因为我需要 4 个所有东西来实现高可用性(2 个设施中的 2 个相同设置)。同时,上图似乎非常灵活,并且更具水平可扩展性。
以前有人建过这个吗?是否有预先构建的配置?我应该考虑什么以及我应该使用什么软件(我听说有人使用带有 mod-ssl、nginx 和 stunnel 的 apache)?另外,购买昂贵的负载平衡器与构建 SSL 服务器群什么时候有意义?
我正在安装 SSL 证书来为 HTTPS 提供服务。我使用Apache 2.4的Amazon Linux,并获得在证书startssl如果。我的 Vhost 配置如下:
<IfModule mod_ssl.c>
<VirtualHost _default_:443>
ServerAdmin webmaster@myweb.com
ServerName myweb.com
DocumentRoot /var/www/html/myapp
<Directory /var/www/htmlmyapp>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
ErrorLog /var/log/httpd/error_log
LogLevel warn
CustomLog /var/log/httpd/ssl_access.log combined
SSLEngine on
SSLCertificateFile /etc/ssl/certs/mycert.crt
SSLCertificateKeyFile /etc/ssl/private/mycert.key
SSLCertificateFile /etc/ssl/certs/sub.class1.server.ca.pem
BrowserMatch "MSIE [2-6]" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.
BrowserMatch "MSIE [17-9]" ssl-unclean-shutdown
</VirtualHost>
</IfModule>
Run Code Online (Sandbox Code Playgroud)
当我重新启动 Apache 时,我得到以下输出:
Stopping httpd: [ OK ]
Starting httpd: Apache/2.4.12 …Run Code Online (Sandbox Code Playgroud) 我将服务器从 Wheezy 升级到 Jessie,Apache 2.4 停止工作......
特别是在端口 443 上没有 ssl ....
telnet myhost 443
GET https://myhost
<html><meta http-equiv='Content-Type' content='text/html; charset=utf-8'/><body>Something in /var/www/html/index.html</body></html>>Connection closed by foreign host.
Run Code Online (Sandbox Code Playgroud)
它应该是:
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>400 Bad Request</title>
</head><body>
<h1>Bad Request</h1>
<p>Your browser sent a request that this server could not understand.<br />
Reason: You're speaking plain HTTP to an SSL-enabled server port.<br />
Instead use the HTTPS scheme to access this URL, please.<br />
</p>
</body></html>
Connection closed by foreign …Run Code Online (Sandbox Code Playgroud) 我正在为一家公司设置邮件服务器,我已经完成了一切,生成了csr,一切正常,我只需要添加godaddy的ssl,godaddy给出的说明不清楚,我需要一些帮助,我们有centos 专用服务器和 apache,有关如何设置的任何帮助?
顺便说一句,主站点托管在另一台服务器上,邮件服务器仅用于提供邮件,我们使用 mx 记录将邮件服务器指向主域,我们必须在两台服务器上安装 ssl 还是只安装一个?
mod-ssl ×10
ssl ×6
apache-2.2 ×4
apache-2.4 ×3
https ×2
openssl ×2
amazon-linux ×1
apache2 ×1
centos ×1
centos6 ×1
lighttpd ×1
mod-proxy ×1
nginx ×1