我正在将Centos 7与Plesk(1and1专用服务器)和Apache一起使用,尽管我们有2个域已被Apache规则重写,但我们希望在可能的情况下通过加密来保护所有网站。
这是我们用来重写域的代码:
ServerAlias www.traffweb.portsmouth.gov.uk traffweb.portsmouth.gov.uk
RewriteEngine on
RewriteCond %{HTTP_HOST} ^(w{3}\.)?portsmouthtraffweb\.uk [NC]
RewriteRule (.*) http://www.traffweb.portsmouth.gov.uk/$1 [R=301,L]
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
然后
/usr/local/psa/admin/sbin/httpdmng --reconfigure-domain portsmouthtraffweb.uk
不太确定最后一条命令是否必要,我想这是我最后一次插入apache规则,就是这样。
在我们的服务器中,我们拥有(并且我们拥有)portsmouthtraffweb.uk
,而traffweb.portsmouth.gov.uk
由客户端拥有,该子域在任何地方都不存在,它已在DNS上重定向并带有A记录以指向到我们的服务器IP。
基本上在服务器中存在portsmouthtraffweb.uk
,如果输入traffweb.portsmouth.gov.uk
的流量请求,它将重定向为使用portsmouthtraffweb.uk
的目录
我试图在Plesk中使用“让我们加密”,但是当我应用证书时,重写的规则将被忽略,显示的URL是服务器上的URL,而不是我们想要显示的URL。
如何保护这些域?我的一部分是,我使用这两个域来查看网站,其他人将仅使用正确的URL traffweb.portsmouth.gov.uk
,因为它将通过此DOMAIN NAME进行宣传。
我不介意在服务器上做一些代码,因为我们拥有服务器,因此我可以作为root用户连接,并且您可以看到此命令是在服务器上完成的,而不是通过Plesk完成的,有时我只是喜欢做某事在Plesk中,因为它需要的时间更少。
答案 0 :(得分:0)
嘿@Sebastiano:wave:
您实际上无法获得不受合法控制的域的证书。我认为这可能是问题所在。
您确定他们使用的是A
记录(指向IP地址),而不是AAAA
记录或最可能的CNAME
记录或其他重定向机制吗?
如果他们控制域,则.gov.uk
管理员的工作就是为自己获得证书。您可以使用https://www.whatsmydns.net/之类的服务(如果该链接无效,则使用Google进行“检查DNS传播”检查),以验证它确实指向您的域或服务器IP。
如果它是CNAME,那么从您的角度来看,它应该只是porsmouthtraffweb.uk
,因此您需要确保首先直接解析为您想要SSL的服务器。然后,您还需要一个具有相同webroot的单独虚拟主机。 https://certbot.eff.org/all-instructions提供了详尽的列表。我在较小的网站上使用了webroot选项,但是我确信您甚至可以使用DNS来保护SSL证书(只要您控制DNS)即可。
这是我的本地linux俱乐部之一,该俱乐部运行Apache 2.2(自从升级到Nginx以来)https://gist.github.com/Lewiscowles1986/dda7382e21a7ec66089730f7945842f0
证书应存储在webroot之外。 Letsencrypt的用户住在/etc/letsencrypt
下。您可能还需要生成dhparams.pem
openssl dhparam -out /etc/nginx/ssl/dhparam.pem 4096
一旦服务器解析并知道portsmouthtraffweb.uk
会解析您的服务器,则您只能请求该域的LetsEncrypt证书。同样,如果.gov.uk可以解析到您的服务器,则您只能请求该域的证书。
我使用certbot实用程序,但是您可能会发现商业提供商更适合于保护政府网站。
是刘易斯·布特