如何仅使用.htaccess文件设置ssl

时间:2016-06-17 19:10:32

标签: apache .htaccess ssl https httpd.conf

是否有人尝试仅使用.htaccess文件为网站设置ssl?

我阅读了许多指向apache的httpd.conf文件的文档,在:标记内添加了一些行。
但我无法访问我的网站托管上的httpd.conf文件...
我只能说。我的托管目录中的htaccess文件 那么有没有办法只使用.htaccess文件来实现HTTPS网站。

注意:我已经拥有我的域名证书。

5 个答案:

答案 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)