我想让我的Apache Web服务器只接受SSL连接,如果客户端呈现给自己一个特定的SSL客户端证书。 换句话说,只有一个客户端是允许的,它必须使用特定的客户端证书(我也有)。 这个客户端证书(我们称之为“MyClientCertificate”)是一个由CA发出的正常的PEM证书(我们称之为“MyCA”),我也有证书。 这就是我为此configuration了Apache虚拟主机(我仅报告与SSL客户端validation相关的选项): SSLVerifyClient require SSLCACertificatePath /etc/ssl/certs SSLCACertificateFile /etc/ssl/client/MyClientCertificate.pem SSLCADNRequestFile /etc/ssl/client/MyClientCertificate.pem SSLVerifyDepth 1 选项的解释(或者我的意图至less…): 与“SSLVerifyClient要求”我强制Apache始终执行客户端validation,并拒绝连接,如果它失败 / etc / ssl / certs包含MyCA的PEM证书(正确地安装在系统中,具有所需的散列+符号链接过程),只要所有其他知名CA的Apache可以识别 使用SSLCACertificateFile我将MyClientCertificate证书添加到/ etc / ssl / certs中的CA证书列表中,作为一个受信任的证书本身,以及SSLCADNRequestFile我说我的服务器应该只请求该证书(并且只有这个证书)到客户端,而不是SSLCACertificatePath + SSLCACertificateFile中的所有CA证书列表 与“SSLVerifyDepth 1”我说,允许的客户端证书是由服务器所识别的CA(在SSLCACertificatePath中)签名的, 这似乎工作:Apache要求客户端证书,拒绝连接,如果没有提供指定的客户端证书,并接受它,如果是。 然而,最近客户端(这是我的供应商)已经决定改变它的客户端证书,用一个新的(我们称之为MyNewClientCertificate.pem),用2048位encryption而不是旧的1024位深度。 问题是这样的: 供应商表示已更改其客户端证书,并且正在使用新证书进行身份validation 供应商肯定地说它只是提供新的证书,而不是新的和旧的证书 我还没有改变我的Apacheconfiguration(因此,我的Apache仍然被configuration为请求旧的证书) 但我的Apache正在接受供应商客户端连接没有任何问题! 我会期望它开始失败,直到我改变它的configuration,以取代MyClientCertificate.pem引用与MyNewClientCertificate.pem 新的证书由旧的证书发出。 供应商build议我的Apacheconfiguration可能会接受来自客户端的所有连接,这些客户端提供由该CA发出的证书,而不是在客户端证书本身上执行匹配。 如果是这样的话,我在configuration中做错了什么? 我应该将SSLVerifyDepth降低到0吗? (但是这不是说证书必须是自签名的吗?)还是我必须改变SSLCACertificateFile / SSLCADNRequestFile指令中的内容? 由于这个系统正在生产中,我不具备执行所有我能想到的testing的能力,但是我应该尽量做出有针对性的改变,以便尽快得到正确的结果。 这就是为什么我会很感激这个话题的任何帮助。
我有一个NAT路由器/防火墙后面的Ubuntu服务器。 我想添加另一台服务器,通过http(s)从两台服务器提供内容。 据我所知,我可以从另一个IP的“主”服务器请求数据取决于哪个虚拟主机被调用。 但是,我需要了解如何完成,需要哪种设置。 数据是通过“主”服务器路由还是直接从服务器2提供的数据? 在服务器之间是否需要进行其他共享,如访问这些文件?
我已经安装了OS X Server,所以我可以使用时间机器将多台计算机备份到中央驱动器。 我想configurationEl Capitannetworking共享,而不是OS X服务器的网站,因为我发现很难使用OS X服务器来configuration网站。 我试过这样做,但似乎没有工作。 sudo ln -fs /etc/apache2/httpd.conf /Library/Server/Web/Config/apache2/httpd_server_app.conf 有人能告诉我如何启用内置的networking共享,而不是OS X服务器的httpd服务器? 谢谢,加里
在我的工作中,我使用PHP 5在Apache webserver 2.4.6上安装了Mediawiki(最新版本)。当我想在本地访问wiki页面时,Everthing正常工作,我在Mediawiki中configuration了一个主机名 $wgServer = https://en.wiki.example.com. 现在,一旦我在Mediawik中清除了这个主机名configuration,那么它应该获取它获得web服务器的主机名。 发生这种情况,但主机名的格式是 http://en.wiki.example.com:443 这是一个不正确的URL(因为混合HTTP和HTTPS)。 我认为这是一个Apache的问题,因为当我尝试浏览 https://en.wiki.example.com/wiki 它redirect到 http://en.wiki.example.com:443/wiki/index.php/Main_Page 我得到一个错误的请求错误。 在wiki后面的斜杠没有任何影响。 虚拟主机: <VirtualHost *:443> ServerName https://en.wiki.example.com ServerAlias https://en.wiki.example.com en.wiki.external.com Alias /wiki /var/www/wiki-en ErrorLog logs/ssl_error_log TransferLog logs/ssl_access_log <Directory /var/www/wiki-en> Options Indexes FollowSymLinks AllowOverride None Require all granted </Directory> </VirtualHost> SSL +默认的虚拟主机: Listen 443 https NameVirtualHost *:443 ## ## SSL Global […]
以下问题:我们运行一个CentOSnetworking服务器,并希望为外部承包商授予访问权限,只需访问我们的webfolder“/ var / www”即可修改/上传文件。 我试过的是设置SFTP监狱(根据以下文档: http : //www.thegeekstuff.com/2012/03/chroot-sftp-setup/ ),但由于以下原因,我无法工作:整个webfolder已经像往常一样在CentOS中分配了Apache用户apache:apache。 但SFTP需要有root权限:否则会出现以下错误: 致命:chroot目录组件的错误所有权或模式“/ var / www /”[postauth]那么我怎样才能设置SFTP或其他解决scheme,以保持“www”文件夹apache:apache拥有,并允许其他用户访问它? 有没有其他的select来解决这个问题,然后SFTP或SFTP是正确的事情? 预先感谢您的帮助!
我尝试像这样configuration我的apache: https : //www.howtoforge.com/how-to-set-up-apache2-with-mod_fcgid-and-php5-on-ubuntu-8.10 重点是我想要一个用户typo3和一个livezilla。 我得到这个configuration工作, top我可以看到在用户typo3和livezilla运行下的Apache的进程。 但是,如果我试图用这个PHP代码与其中一个用户的Web目录: <?php $dirHandle = dir("../../../"); while (($f = $dirHandle->read()) != false) { echo $f."<br />"; } 我可以查看这些文件,甚至可以查看这些文件中的内容。 我怎样才能防止Apache允许这个?
apache2 mod_gnutls https服务实际上pipe理成功运行,但试图从pkcs11 URL读取私钥时一直返回此错误: [Wed Jan 20 13:26:25.268236 2016] [gnutls:emerg] [pid 5232:tid 140334984677248] GnuTLS: Failed to Re-Import Private Key URL 'pkcs11:model=SoftHSM;manufacturer=SoftHSM;serial=1;token=GnuTLS-Test;id=%3e%2d%3d%e4%2b%8b%a0%7c%7c%56%08%95%aa%aa%47%db%15%a2%b9%84;object=GnuTLSTest2;object-type=private': (-300) PKCS #11 error. 使用apache2 2.4.x与mod-gnutls 0.7.2 + gnutls 3.3.x 操作系统:Ubuntu生动 有趣的是,它不会返回证书的这种错误,只是私钥。 那么有什么想法? 更新: 这是来自mod_gnutls.conf的configuration文件: <IfModule mod_gnutls.c> # The default method is to use a DBM backed cache. It's not super fast, but # […]
它是如何设置的 我有一个网站,这是设置为干净的url与Apache mod_rewrite是这样的: RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)/$ /$1 [L,R=301] RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^ index.php [L,QSA] 该网站还使用了一个名为Cockpit的CMS,它位于我的公共目录下,它的干净的URL包含一个类似的.htaccess文件: RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule .* index.php [L] 在这两种情况下RewriteEngine On也存在(当然)。 现在在Apache这导致我的网站的URL被重写这样的 http://domain.com/a http://domain.bom/b 和驾驶舱的url几乎一样: http://domain.com/cockpit/a http://domain.com/cockpit/b 我正在调查所以我一直在考虑离开Apache的背后lighttpd,我已经搞乱了他们的mod_rewrite语法和configuration相当多,但我遇到了一个问题,驾驶舱url不完全清洁。 这是我如何在lighttpd上设置的: $HTTP["host"] == "domain.com" { server.document-root = "/var/www/domain.com/public_html" index-file.names = ( "index.php" ) $HTTP["url"] =~ "^(\/cockpit)(\/[a-zA-Z0-9\.]*)*$" { url.rewrite-if-not-file […]
我的一个客户想让我在他的服务器上升级openssl和Apache,因为他想从SSLLabs接收一个A. 我继续升级到Apache 2.4.18,并打开到1.0.2e版本。 然后我修改了Apache的SSLconfiguration以符合以下要求: # SSL Protocols/Ciphers SSLProtocol All -SSLv2 -SSLv3 SSLHonorCipherOrder On SSLCipherSuite ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256::kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!3DES:!MD5:!PSK SSLCompression off 我从SSL实验室运行SSLtesting,但仍收到以下警告: 该服务器容易受到POODLE攻击。 如果可能的话,禁用SSL 3来缓解。 等级上限为C. 在协议列表中,即使上述语句声明应禁用SSL 3,也会显示YES。 我已经尝试了许多密码组合search在networking上,我总是得到相同的结果。 我也在任何* .conf文件中searchSSLconfiguration,但除了我上面的SSL文件没有。 该网站的url: https : //orders.expotools.biz SSL实验室: https : //www.ssllabs.com/ssltest/analyze.html? d = orders.expotools.biz
我们最近在生产服务器上切换到了apache 2.4.18,并且在我们的网站上每天都有大约10万次访问,所有的都是https / ssl(HTTP / 2 with http2_module)。 我们通过PHP-FPM(proxy_fcgi)使用worker MPM和PHP 5.6,因为事件MPM在使用https时似乎还没有正常工作。 设置是: <IfModule mpm_worker_module> ServerLimit 16 StartServers 8 MinSpareThreads 64 MaxSpareThreads 256 ThreadLimit 64 ThreadsPerChild 64 MaxRequestWorkers 1024 MaxConnectionsPerChild 10000 </IfModule> 服务器重启后,Debian Jessie安装的线程数在数小时后增加到几千,并且apache错误日志填满了这些消息: AH00288: scoreboard is full, not at MaxRequestWorkers /服务器状态似乎表明一些奇怪的“W发送回复”线程,它不会做任何事情,但有一个很长的运行时间: W___KRK___KKC__C___KR__K__KKKRKKKKK___K__CC__KR____K__KK________ __KWR_KK_K_C__KC_KKKKKKK__KK__C_KKKKCK_KKK_C_K____WRKK_K_KKR_K_K KK_CRKKKKRKKKKK__KK_WKCKK_KKKK_KWKKKWKKRRR__KK__K____KKKCK_KKKKK _KK___K_W__K___CK_C___K____CRK____CKK_______KKKKKKCK___KCKK_KKK_ KK_KK_KK_KKKKK_K_KKK_KRKK_C_CKKR_C_KW__K_KWRK_KK_R_KR_K__KKK__K_ …………………………C…………………….W……. ………………………….W…………………………WW …………W………W………………………………….. ………W……….W………………..W…………………. ……………..W…….W……………………………….. …………………………………………………W…… CKKKKK_KK_KKKK_CKKKRK_RKRKKKKRRKKRKK_KC_KRKKK_KKKKKRKRRKKKKR_RK_ …………………………………………………….W.. ………………………………………………………. […]