SSL을 통해 패키지를 실제로 다운로드하기에는 너무 오래된 서버에서 SSL 구성 요소를 업데이트하는 방법

SSL을 통해 패키지를 실제로 다운로드하기에는 너무 오래된 서버에서 SSL 구성 요소를 업데이트하는 방법

여기에 Catch-22가 있는 것 같습니다. 서버를 새 버전으로 업데이트하는 것은 불가능합니다. Apache를 특정(이전 버전)으로 업데이트하면 됩니다.

서버는 CentOS 6.3입니다. 기본 저장소가 오래되어 Vault 저장소를 사용하려면 업데이트해야 합니다. 그러나 HTTPS가 필요하며 yum리포지토리를 업데이트한 후 실행하려고 할 때마다 다음과 같은 결과를 얻습니다.

https://vault.centos.org/centos/6/os/i386/repodata/repomd.xml: [Errno 14] SSL 연결 설정 중 문제 발생

당연히 yum, openssl 등을 업데이트해야 하는데... 패키지를 다운로드할 수 없으면 어떻게 해야 하나요 yum? 이러한 패키지를 수동으로 빌드하지 않는 방법이 있습니까?

다음은 CentOS-Base.repo입니다. (참고: 이를 http로 변경하면 작동하지 않는 것 같습니다.)

# CentOS-Base.repo
#
# The mirror system uses the connecting IP address of the client and the
# update status of each mirror to pick mirrors that are updated to and
# geographically close to the client.  You should use this for CentOS updates
# unless you are manually picking other mirrors.
#
# If the mirrorlist= does not work for you, as a fall back you can try the
# remarked out baseurl= line instead.
#
#

[base]
name=CentOS-$releasever - Base
baseurl=https://vault.centos.org/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

#released updates
[updates]
name=CentOS-$releasever - Updates
baseurl=https://vault.centos.org/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

#additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras
baseurl=https://vault.centos.org/centos/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-$releasever - Plus
baseurl=https://vault.centos.org/centos/$releasever/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

#contrib - packages by Centos Users
[contrib]
name=CentOS-$releasever - Contrib
baseurl=https://vault.centos.org/centos/$releasever/contrib/$basearch/
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

답변1

yum업데이트된 모든 패키지를 수동으로 설치하여 제대로 실행되도록 했습니다 .

먼저 CentOS 6.10 저장소에서 패키지를 다운로드했습니다. 예, 의도적으로 6.3 서버에서 6.10을 사용하고 있습니다. (참고: 저장소가 조잡해서 명령을 여러 번 다시 시도해야 했습니다.)

wget --no-check-certificate https://vault.centos.org/centos/6.10/os/i386/Packages/yum-3.2.29-81.el6.centos.noarch.rpm
wget --no-check-certificate https://vault.centos.org/centos/6.10/os/i386/Packages/yum-plugin-fastestmirror-1.1.30-41.el6.noarch.rpm
wget --no-check-certificate https://vault.centos.org/centos/6.10/os/i386/Packages/yum-utils-1.1.30-41.el6.noarch.rpm
wget --no-check-certificate https://vault.centos.org/centos/6.10/os/i386/Packages/yum-metadata-parser-1.1.2-16.el6.i686.rpm
wget --no-check-certificate https://vault.centos.org/centos/6.10/os/i386/Packages/openssl-1.0.1e-57.el6.i686.rpm
wget --no-check-certificate https://vault.centos.org/centos/6.10/os/i386/Packages/openssl-devel-1.0.1e-57.el6.i686.rpm
wget --no-check-certificate https://vault.centos.org/centos/6.10/os/i386/Packages/openssl-perl-1.0.1e-57.el6.i686.rpm
wget --no-check-certificate https://vault.centos.org/centos/6.10/os/i386/Packages/openssl-static-1.0.1e-57.el6.i686.rpm
wget --no-check-certificate https://vault.centos.org/centos/6.10/os/i386/Packages/curl-7.19.7-53.el6_9.i686.rpm
wget --no-check-certificate https://vault.centos.org/centos/6.10/os/i386/Packages/libcurl-7.19.7-53.el6_9.i686.rpm
wget --no-check-certificate https://vault.centos.org/centos/6.10/os/i386/Packages/libcurl-devel-7.19.7-53.el6_9.i686.rpm
wget --no-check-certificate https://vault.centos.org/centos/6.10/os/i386/Packages/python-urlgrabber-3.9.1-11.el6.noarch.rpm
wget --no-check-certificate https://vault.centos.org/centos/6.10/os/i386/Packages/nss-3.36.0-8.el6.i686.rpm
wget --no-check-certificate https://vault.centos.org/centos/6.10/os/i386/Packages/nss-util-3.36.0-1.el6.i686.rpm
wget --no-check-certificate https://vault.centos.org/centos/6.10/os/i386/Packages/nss-tools-3.36.0-8.el6.i686.rpm
wget --no-check-certificate https://vault.centos.org/centos/6.10/os/i386/Packages/nss-sysinit-3.36.0-8.el6.i686.rpm
wget --no-check-certificate https://vault.centos.org/centos/6.10/os/i386/Packages/nss-softokn-3.14.3-23.3.el6_8.i686.rpm
wget --no-check-certificate https://vault.centos.org/centos/6.10/os/i386/Packages/nss-softokn-freebl-3.14.3-23.3.el6_8.i686.rpm
wget --no-check-certificate https://vault.centos.org/centos/6.10/os/i386/Packages/nspr-4.19.0-1.el6.i686.rpm
wget --no-check-certificate https://vault.centos.org/centos/6.10/os/i386/Packages/p11-kit-0.18.5-2.el6_5.2.i686.rpm
wget --no-check-certificate https://vault.centos.org/centos/6.10/os/i386/Packages/p11-kit-trust-0.18.5-2.el6_5.2.i686.rpm
wget --no-check-certificate https://vault.centos.org/centos/6.10/os/i386/Packages/ca-certificates-2018.2.22-65.1.el6.noarch.rpm

그런 다음 다음 패키지를 설치했습니다.

rpm -Uvh openssl*.rpm
rpm -Uvh ns*.rpm
rpm -Uvh *curl*.rpm
rpm -Uvh python-urlgrabber-3.9.1-11.el6.noarch.rpm
rpm -Uvh yum*.rpm
rpm -Uvh p11*.rpm
rpm -Uvh ca-certificates-2018.2.22-65.1.el6.noarch.rpm

설치된 패키지에 대한 경고가 있으면 명령 --force에 추가하십시오.rpm

마침내 나는 도망쳤고 yum clean all모든 yum install httpd것이 다시 정상이 되었습니다. 설치된 Apache의 최신 패치 수준입니다.

위 패키지 중 일부는 필요하지 않을 수도 있습니다. 시스템에 설치된 항목에 따라 다릅니다. 예를 들어, openssl-perl.i686아직 설치되지 않은 경우 설치하지 마십시오. 그렇지 않으면 Perl 종속성을 설치해야 합니다.

답변2

나에게는 효과가 없었지만 다음 단계를 시도해 볼 수 있습니다.

현재 CentOS-Base.repo 파일의 백업을 만듭니다.

cp -r /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.old

기본 저장소를 복구하려면 다음 내용을 /etc/yum.repos.d/CentOS-Base.repo에 복사하세요.

[C6.10-base]
name=CentOS-6.10 - Base
baseurl=http://linuxsoft.cern.ch/centos-vault/6.10/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
enabled=1
metadata_expire=never

[C6.10-updates]
name=CentOS-6.10 - Updates
baseurl=http://linuxsoft.cern.ch/centos-vault/6.10/updates/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
enabled=1
metadata_expire=never

[C6.10-extras]
name=CentOS-6.10 - Extras
baseurl=http://linuxsoft.cern.ch/centos-vault/6.10/extras/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
enabled=1
metadata_expire=never

[C6.10-contrib]
name=CentOS-6.10 - Contrib
baseurl=http://linuxsoft.cern.ch/centos-vault/6.10/contrib/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
enabled=0
metadata_expire=never

[C6.10-centosplus]
name=CentOS-6.10 - CentOSPlus
baseurl=http://linuxsoft.cern.ch/centos-vault/6.10/centosplus/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
enabled=0
metadata_expire=never

캐시 지우기

yum clean all

CA 인증서 업데이트

yum update ca-certificates

올바른 저장소를 사용하여 CentOS-Base.repo를 복원하십시오.

# CentOS-Base.repo
#
[base]
name=CentOS-$releasever - Base
baseurl=https://vault.centos.org/6.10/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

# released updates
[updates]
name=CentOS-$releasever - Updates
baseurl=https://vault.centos.org/6.10/updates/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

# additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras
baseurl=https://vault.centos.org/6.10/extras/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

캐시 지우기

yum clean all

답변3

저도 같은 문제에 직면했고 많은 시행착오 끝에 Docker for Webserver가 솔루션으로 등장했습니다. Apache 업데이트만 시도하지 않는 것이 좋습니다. 지나친 의존은 결국 당신을 절망으로 몰고 갈 것입니다.

(이것이 댓글 섹션에 있어야 한다는 것을 알고 있지만 질문에 댓글을 다는 것에 대한 평판은 별로 없습니다.)

답변4

수명이 다하면 보안 허점을 해결하려는 노력을 포기했다는 의미입니다. 이 시스템을 노출된 채로 두면 귀하의 서비스와 네트워크의 다른 서비스가 위험에 처하게 됩니다. 그 네트워크가 인터넷이라 할지라도.

업그레이드가 실행 가능한 옵션이 아닌 경우도 있습니다. 이 경우 현재 플랫폼에서 실행 중인 프록시가 앞에 있는 개인 네트워크에 해당 서버를 래핑해야 합니다. 우연히도 이는 프록시만 연결할 수 있고 프록시 자체가 현재 프로토콜을 클라이언트에 제공할 수 있기 때문에 서버 측 SSL 문제도 해결합니다.

클라이언트 SSL 연결 프록싱은 좀 더 복잡합니다. SSL MITM을 사용해야 합니다(이를 수행하도록 Squid를 구성할 수 있음).

관련 정보