apache安装了ssl,现要将80端口的http访问重定向到443端口的https,怎么办?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了apache安装了ssl,现要将80端口的http访问重定向到443端口的https,怎么办?相关的知识,希望对你有一定的参考价值。

    方法如下:
    1、防火墙将开放80端口指向内网服务器的443端口

    2、服务器Tomcat目录conf/server.xml
    a)修改配置端口跳转443
       <Connector port="80" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="443" />
    b)开启443端口配置
       <Connector port="443" protocol="org.apache.coyote.http11.Http11Protocol" maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
                  clientAuth="false" sslProtocol="TLS" keystoreFile="证书路径" keystorePass="证书密码"/>

80端口是为HTTP(HyperText Transport Protocol)即超文本传输协议开放的,此为上网冲浪使用次数最多的协议,主要用于WWW(World Wide Web)即万维网传输信息的协议。可以通过HTTP地址(即常说的“网址”)加“:80”来访问网站,因为浏览网页服务默认的端口号都是80,因此只需输入网址即可,不用输入“:80”了。

参考技术A

上面的意思应该是计划服务器默认访问443端口,方法如下:


1、防火墙将开放80端口指向内网服务器的443端口


2、服务器Tomcat目录conf/server.xml


a)修改配置端口跳转443
<Connector port="80" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="443" />
b)开启443端口配置
<Connector port="443" protocol="org.apache.coyote.http11.Http11Protocol" maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS" keystoreFile="证书路径" keystorePass="证书密码"/>

tomcat 默认端口说明:

    <Server port="8005" shutdown="SHUTDOWN"> 远程停服务端口

    <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8"/> 其中8080为HTTP端口,8443为默认HTTPS端口

    <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" /> 8009为AJP端口,服务器之间的通信使用该端口

    HTTP重定向至HTTPS也就是将80端口重定向至443端口

    1. 设置https 访问:

    <Connector port="443" protocol="HTTP/1.1" SSLEnabled="true"

    maxThreads="150" scheme="https" secure="true"

    clientAuth="false" sslProtocol="TLS"

    keystoreFile="/usr/share/tomcat7/conf/.keystore" keystorePass="sunyainfo.com"/>

    keystoreFile : 证书存放路径

    keystorePass : 证书密码

    2. 配置80端口,将8080改成80, redirectPort设置为443

    <Connector port="80" protocol="HTTP/1.1"

    connectionTimeout="20000"

    URIEncoding="UTF-8"

    redirectPort="443" />

    3. 配置8009端口重定向

    <Connector port="8009" protocol="AJP/1.3" redirectPort="443" />

    4. 在 $TOMCAT_HOME/bin/web.xml中加入以下配置,禁止http访问

    <security-constraint>

    <web-resource-collection >

    <web-resource-name >SSL</web-resource-name>

    <url-pattern>/*</url-pattern>

    </web-resource-collection>

    <user-data-constraint>

    <transport-guarantee>CONFIDENTIAL</transport-guarantee>

    </user-data-constraint>

    </security-constraint>

    5.重启tomcat即可

Nginx服务器上安装SSL证书

(Nginx服务器上安装SSL证书)

1、前提条件

  • 服务器已经开启了443端口(HTTPS服务的默认端口)
  • 服务器上已安装了http_ssl_module模块

2、nginx安装http_ssl_module模块

2.1 查看是否安装过http_ssl_module

进入nginx安装目录执行如下命令

./nginx -V

若出现“--with-http_ssl_module”说明已经安装过,否则继续执行下列步骤

2.2 进入nginx源文件目录

cd /usr/local/nginx/nginx-1.18.0/

2.3 重新编译nginx

./configure --with-http_ssl_module

再执行如下命令:

make

这里一定不要执行make install,否则会覆盖掉原来的nginx

2.4 用新的nginx覆盖旧的

会多一个objs文件夹

执行覆盖命令(先停止nginx,./nginx -s stop)

 cp ./objs/nginx /usr/local/nginx/sbin/

3、https配置(SSL证书安装)

3.1 下载证书文件和密钥文件

我自己用的百度云的免费SSL证书,下载证书,这里格式选择PEM_Nginx

解压完之后有两个文件,如下所示。

  • 证书文件(以.cer或crt为后缀或文件类型)
  • 密钥文件(以.key为后缀或文件类型)

3.2 服务器上创建cert文件夹

在nginx的安装目录创建cert文件夹,并将下载的证书文件,和密钥文件拷贝到cert目录中。

3.3 配置nginx.conf

打开Nginx安装目录 > conf文件夹 > nginx.conf文件,在nginx.conf文件中找到以下属性

将注释放开,并修改内容如下:

 # 以下属性中以ssl开头的属性代表与证书配置有关,其他属性请根据自己的需要进行配置。
    server 
        listen 443 ssl;
        server_name codeleader.top;  # localhost修改为您证书绑定的域名。
        # ssl on;   #设置为on启用SSL功能。
        root html;
        index index.html index.htm;
        ssl_certificate cert/codeleader.top.crt;   #将domain.pem替换成您证书的文件名。
        ssl_certificate_key cert/codeleader.top.key;   #将domain.key替换成您证书的密钥文件名。
        ssl_session_timeout 5m;
        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;  #使用此加密套件。
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;   #使用该协议进行配置。
        ssl_prefer_server_ciphers on;
        location / 
            proxy_pass http://halo;
            proxy_set_header HOST $host;
            proxy_set_header X-Forwarded-Proto $scheme;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        
    

3.4 设置http请求自动跳转https

在需要跳转的http站点下添加以下rewrite语句,实现http访问自动跳转到https页面

#设置http请求自动跳转https
rewrite ^(.*)$ https://$host$1 permanent;

3.5 重启测试

./nginx -s reload

证书安装完成后,可通过登录证书绑定域名的方式验证证书是否安装成功。

https://domain:port   #domain替换成证书绑定的域名,默认443端口可以忽略不输入

如果网页地址栏出现绿色小锁标志,表示证书安装成功。

以上是关于apache安装了ssl,现要将80端口的http访问重定向到443端口的https,怎么办?的主要内容,如果未能解决你的问题,请参考以下文章

在端口 80 上为 Tomcat 和在 8080 上的 Apache 使用相同的 SSL 证书

Apache端口问题[关闭]

如何在 Apache 中启用 HTTP/2

如何在 Apache 中启用 HTTP/2

SSL证书绑定成功

安装Xampp后apache无发启动,80端口被占用,怎么解决???