Articles of mod ssl

apache客户端证书身份validation错误:证书validation:错误(18):自签名证书

所以我一直遵循在Apache2 w / mod_ssl中设置客户端证书authentication的说明。 这仅仅是为了testing针对CAA的应用程序,而不是用于任何types的生产用途。 到目前为止,我已经遵循http://www.impetus.us/~rjmooney/projects/misc/clientcertauth.html获取有关生成我的CA,服务器和客户端encryption信息的build议。 我把它们全部放到/etc/ssl/ca/private 。 我在我的default_ssl站点文件中设置了以下附加指令: <IfModule mod_ssl.c> <VirtualHost _default_:443> … SSLEngine on SSLCertificateFile /etc/ssl/ca/private/server.crt SSLCertificateKeyFile /etc/ssl/ca/private/server.key SSLVerifyClient require SSLVerifyDepth 2 SSLCACertificatePath /etc/ssl/ca/private SSLCACertificateFile /etc/ssl/ca/private/ca.crt <Location /> SSLRequireSSL SSLVerifyClient require SSLVerifyDepth 2 </Location> <FilesMatch "\.(cgi|shtml|phtml|php)$"> SSLOptions +StdEnvVars </FilesMatch> <Directory /usr/lib/cgi-bin> SSLOptions +StdEnvVars </Directory> … </VirtualHost> </IfModule> 我已经将p12文件安装到Chrome中,但是当我访问https:// localhost时 ,出现以下错误 Chrome: Error 107 […]

是否有可能执行客户端证书身份validation,而无需在Web服务器上运行HTTPS?

(请注意:这个问题是很多“你为什么不试试这个问题”的问题之一,我当然会这样做,但是由于我没有find一个明显的使用googlesearch的答案,所以我想我可能会更容易稍后可能需要在ServerFault上询问的人) 我的Web应用程序通过HTTPS在某些负载平衡器后面提供服务,并允许用户在某些情况下使用客户端证书进行身份validation。 现在我被问到是否希望将SSLencryption/解密卸载到负载均衡器,以便运行纯HTTP网站(从而更轻松地进行debugging和configuration),而负载平衡器将为HTTPS用户。 免费的额外CPU周期当然听起来不错,但是,我不相信我仍然能够检查用户的客户端证书。 是否有可能使用客户端证书而不运行一个完整的HTTPS站点?

禁用没有“关”值的Apache指令

我希望某些Apache指令(如SSLCACertificateFile)在某些位置启用,但在其他位置禁用。 例如, # Require client certificates for http://example.com/secure <Location "/secure"> SSLCACertificateFile /path/to/my/file SSLVerifyClient requried </Location> # Allow access to http://example.com/secure/exception without certificates <Location "/secure/exception"> SSLCACertificateFiles none # doesn't work SSLVerifyClient none # works </Location> 尽pipe如此,文档没有讨论SSLCACertificateFile指令的任何“off”值。

如何在没有SSL证书的情况下运行虚拟主机443?

我有一个虚拟主机指令,如果input了无效的子域名,则会提供自定义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> 我想设置一个虚拟主机,通过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> 但服务器不会启动并发出错误: 服务器应该是SSL感知的,但没有configuration证书[提示:SSLCertificateFile]((null):0) 看来,即使SSLEngine没有为这个虚拟主机打开,也需要SSL证书。 […]

在CentOS上安装mod_ssl后Apache不会启动

我需要在我的服务器上运行相同的主机名上的http和https。 我把所有东西都运行在没有SSL的情况下,在/etc/httpd/conf.d目录下configuration主机。 System: CentOS release 5.6 (Final) Server: Apache/2.2.3 我按照这里的说明: http : //shapeshed.com/journal/setting_up_mod_ssl_on_apache_centos_52/ 但现在: sudo /etc/init.d/httpd restart 回应: 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] 在/etc/httpd/conf/httpd.conf的底部我有: NameVirtualHost […]

centos6 apache2无效的命令SSLEngine

运行: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 我已经使用yum install mod_ssl Package 1:mod_ssl-2.2.15-15.el6.centos.x86_64 already installed and latest version 我的sites.conf看起来像这样 <VirtualHost *:80> # ServerName shop.itmanx.com […]

构build一个SSL服务器场

我有兴趣在下面引用的文章中构build这个架构。 我目前有一个价格适中的第4层负载平衡器,我的应用程序服务器是SSL端点。 我想在我的负载平衡器和我的应用程序服务器之间放置一个SSL服务器场。 然后,我将在SSL场和我的应用程序服务器之间放置另一个廉价的负载平衡器,以执行第7层路由。 我的Web应用程序有相当高的消费者stream量,6台服务器可以处理大约50%的容量。 另外,我的基础设施stream量比我的消费者stream量还要高出几个数量级。 这是来自世界各地的数据,必须实时与我的networking应用程序集成。 总共我有18个应用程序服务器来处理所有的stream量,再加上6个数据库服务器。 我将在接下来的2周内再添加6个应用程序服务器,在此之后的2周内再增加6个应用程序服务器。 保守地说,我估计到今年年底,我需要扩展到120台服务器。 我现在的动机是将消费者stream量与基础设施stream量分开。 消费者stream量的优先级高于基础设施stream量,我不能让基础设施方面的踩踏力量取消我的面向消费者的服务器。 有一个永远在线的网站是重中之重。 但是,如果某个客户端应用程序服务器出现故障,则需要将该通信路由到指定用于基础设施通信的服务器。 复杂的是,所有的stream量都使用相同的主机名来解决,并且几乎是100%https。 在我的情况下区分基础设施和消费者stream量的唯一方法是通过URL(我inheritance的差的体系结构),所以我需要一个第7层负载均衡器能够路由。 但是,为了工作,我需要一个花哨的基于硬件的SSL终止符或SSL服务器场,如上所述。 因为我的用户基础正在快速扩展,所以我担心如果我走下硬件path,它将变得非常快,特别是因为我需要4个高可用性(2个设施中的2个相同的设置)。 同时,上面的图表看起来非常灵活,可以横向扩展。 有没有人build立过这个? 是否有预build的configuration? 我应该做什么考虑和我应该使用什么软件(我听说有人用mod-ssl,nginx和stunnel使用apache)? 另外,什么时候购买昂贵的负载均衡器vs构buildSSL服务器场是否合理? http://1wt.eu/articles/2006_lb/index_05.html

反向代理上的mod_ssl客户端证书

我正在尝试在代理Oracle应用程序的反向代理上添加客户端证书身份validation。 在添加之前,如果我删除后续代码,oracle应用程序能够启动java,加载并正常工作。 当我在整个代理(因为它只是代理这个应用程序)或特定的位置添加检查时,java应用程序不会加载。 这些是附加的行: SSLVerifyClient需求 SSLVerifyDepth 1 SSLOptions + FakeBasicAuth validation工作正常,漂亮; 只是添加检查停止加载应用程序,不知道为什么。 任何帮助都是极好的 新信息: 我能够解决我的问题与握手失败(这是一个拼写错误,我没有注意到,所以检查失败)。 现在我遇到了: java.lang.ClassNotFoundException:oracle.forms.webutil.common.RegisterWebUtil 在sun.plugin2.applet.Applet2ClassLoader.findClass(未知来源) 在sun.plugin2.applet.Plugin2ClassLoader.loadClass0(未知来源) 在sun.plugin2.applet.Plugin2ClassLoader.loadClass(未知源) 在sun.plugin2.applet.Plugin2ClassLoader.loadClass(未知源) 在java.lang.ClassLoader.loadClass(Unknown Source) 在sun.plugin2.applet.Plugin2ClassLoader.loadCode(未知来源) 在sun.plugin2.applet.Plugin2Manager.initAppletAdapter(未知来源) 在sun.plugin2.applet.Plugin2Manager $ AppletExecutionRunnable.run(未知来源) 在java.lang.Thread.run(Unknown Source) 基本的:load:oracle.forms.webutil.common.RegisterWebUtil找不到。 java.lang.ClassNotFoundException:oracle.forms.webutil.common.RegisterWebUtil 在sun.plugin2.applet.Applet2ClassLoader.findClass(未知来源) 在sun.plugin2.applet.Plugin2ClassLoader.loadClass0(未知来源) 在sun.plugin2.applet.Plugin2ClassLoader.loadClass(未知源) 在sun.plugin2.applet.Plugin2ClassLoader.loadClass(未知源) 在java.lang.ClassLoader.loadClass(Unknown Source) 在sun.plugin2.applet.Plugin2ClassLoader.loadCode(未知来源) 在sun.plugin2.applet.Plugin2Manager.initAppletAdapter(未知来源) 在sun.plugin2.applet.Plugin2Manager $ AppletExecutionRunnable.run(未知来源) 在java.lang.Thread.run(Unknown Source) 如果我删除在post中提到的代码片段,特别是SSLVerifyClient没有或可选,一切都工作。 我也不能将config = webutil添加到我正在使用的链接的末尾,因为它已经指定了一个configuration。

困惑于SSLCACertificateFile参数

有一些我无法理解Apache SSL conf上的SSLCACertificateFile参数。 举个例子,我有一个ROOT证书“A”,颁发了中间证书“B”。 然后,我用B产生了几个叶证书,比如说“L1”,“L2”。 现在,根据文档,如果我只想信任L1和L2,我应该把“B”和“A”放在SSLCACertificateFile指向的文件中(如果我只放了证书“B”,Apache给出一个无法find的文件,发行者错误)。 现在,让我们生成另一个从“A”(根)派生的证书“C”。 apache会信任使用证书C的对等方吗? 对我来说,这是一个“是的,它会的”,因为Apache会在SSLCACertificateFile里find“C”的发行者,那就是“A”! 但我不想信任C,我只想相信L1和L2。 我错过了什么吗? 非常感谢!

有可能使用KeyChain / ssh代理与Apache?

有很多问题(和重复)在serverfault询问如何重新启动Apache没有密码提示。 提出了两种解决scheme: 从密钥中删除密码 提供Apache密钥的apache指令(SSLPassPhraseDialog) 这个问题不是以下两个暴露的答案的重复: apache2重新启动时的SSL密码 对我来说,这是相同的安全水平,不一定是坏的,但通常是一个坏的。 我想知道是否有可能使用KeyChain和ssh-agent来避免在密码或密码清除的情况下存储一个密钥,或者有其他select。 这将允许在没有密码的情况下重新启动Apache,除非服务器重新启动。 有没有人成功实施它?