是否有人尝试仅使用.htaccess文件为网站设置ssl?
我阅读了许多指向apache的httpd.conf文件的文档,在:
标记内添加了一些行。
但我无法访问我的网站托管上的httpd.conf文件...
我只能说。我的托管目录中的htaccess文件
那么有没有办法只使用.htaccess文件来实现HTTPS网站。
注意:我已经拥有我的域名证书。
答案 0 :(得分:4)
您可以从普通HTTP重定向到HTTPS,但无法从htaccess激活SSL / TLS。
要激活SSL / TLS,您必须在其他指令中使用SSLEngine
SSLEngine on
从文档中可以看出,
上下文:服务器配置,虚拟主机
这只能在服务器配置或虚拟主机上下文中使用,但不能在目录和.htaccess上下文中使用。
这意味着,您必须通过您的网络托管服务提供商提供的方式。当您已经拥有证书时,可能单独激活更便宜甚至免费。通常,证书是使用HTTPS的昂贵部分。相反,激活SSL是一次性配置。
答案 1 :(得分:1)
要强制使用SSL,您需要使用的是:
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [R,L]
显然,您需要拥有SSL证书,您在问题中提到 做 拥有这些证书。
答案 2 :(得分:0)
基本上你不能。如果您只能修改htaccess文件,也许您的托管服务提供商会为您提供另一种设置证书的方法。如果没有,你就无法做到。
答案 3 :(得分:0)
(1)您将需要来自托管公司或另一家公司的经过验证的证书。
(1.1) https://www.ionos.co.uk/security/ssl-certificate?ar=1#packages
(1.2) https://letsencrypt.org/
(2)设置完成后,您可以使用https://yourdoman.com连接到站点,您需要在文档根目录中编辑.htaccess文件。仅因为您拥有身份验证证书并不能确保您的安全。首先,您需要实施HTTP严格传输安全性(HSTS)。我引用“ HSTS允许网站要求始终通过HTTPS与之联系。GoogleChrome,Firefox,Safari,Opera,Edge和IE支持HSTS”(chromium.org/hsts,2020年)。另外,您无需将端口80(http://)之类的端口443(https://)通信重定向到端口443。此组合应确保加密通信。但这仍然不能确保您的安全,因为您租用的服务器上可能仍然有不安全的SSL / TLS版本。我希望这会有所帮助。
以下内容已复制并粘贴到我的.htaccess文件中;
##############################################
# HTTP STRICT TRANSPORT SECURITY #
##############################################
# Use HTTP Strict Transport Security to force client to use secure connections only
Header set Strict-Transport-Security "max-age=31536000" env=HTTPS
##############################################
# ENABLE REWRITE ENGINE #
##############################################
RewriteEngine On
RewriteBase /
##############################################
# FORCE PORT 443 #
##############################################
RewriteCond %{HTTPS} !=on
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301,NE]
#Force 443 no 80
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://www.yourdoman.com/$1 [R,L]
我希望这对某人有帮助...
答案 4 :(得分:-1)