설치

설치

내 apache2 웹서버에 SSL을 설정하려고 하는데 전혀 작동하지 않는 것 같습니다.

openssl을 사용하여 인증서 파일을 생성하고 올바르게 구성하는 튜토리얼을 따랐습니다 /etc/apache2/sites-available/default-ssl.conf.

https로 웹사이트를 열려고 할 때마다 브라우저가 보안 문제로 인해 연결을 거부합니다. 웹사이트를 올바르게 구성하지 않았다고 나옵니다.

내 서버 인증서 에 /var/log/apache2/error.log서버 이름과 일치하는 ID가 포함되어 있지 않다는 경고가 표시됩니다.

[Mon Apr 10 11:03:24.041813 2017] [mpm_prefork:notice] [pid 1222] AH00169: caught SIGTERM, shutting down
[Mon Apr 10 11:03:30.566578 2017] [ssl:warn] [pid 661] AH01909: 127.0.0.1:443:0 server certificate does NOT include an ID which matches the server name
[Mon Apr 10 11:03:31.579088 2017] [ssl:warn] [pid 1194] AH01909: 127.0.0.1:443:0 server certificate does NOT include an ID which matches the server name
[Mon Apr 10 11:03:31.592958 2017] [mpm_prefork:notice] [pid 1194] AH00163: Apache/2.4.25 (Raspbian) OpenSSL/1.0.2k configured -- resuming normal operations
[Mon Apr 10 11:03:31.593136 2017] [core:notice] [pid 1194] AH00094: Command line: '/usr/sbin/apache2'

이 문제를 해결하는 방법에 대한 아이디어가 있습니까? 관련 감사합니다!

답변1

네, 최근에 이 게시물이 꽤 자주 조회되는 것을 보니 저와 같은 문제에 직면한 사람이 많은 것 같습니다. 그렇다면 이것이 도움이 될 수 있습니다.

나는 웹 서버에 대한 SSL 인증을 생성하기 위해 간단한 단계별 튜토리얼을 따랐습니다. 많은 튜토리얼과 마찬가지로 제가 따랐던 튜토리얼의 결과는 OpenSSL을 사용하여 자체 서명된 인증서였습니다. 네자체 서명된, 그게 문제였어. 자체적으로 서명된 인증서로 인해 브라우저가 서버를 신뢰할 수 없습니다. 글쎄, 나도 안 그럴 텐데...

인증서는 신뢰할 수 있는 외부 인증 기관(CA)의 서명을 받아야 합니다. 그래서 나는 우연히 발견했다.암호화하자이는 귀하를 위해 모든 작업을 수행하고 설정하기가 훨씬 더 쉽고 가장 좋은 점은 완전 무료입니다.

설치

1) OpenSSL을 사용하여 생성한 이전 SSL 인증서 파일을 삭제합니다.

2) 데비안에서 certbot 클라이언트를 얻기 위해 백포트를 엽니다. 이것이 미완성 소프트웨어에 구멍을 열 것이라는 점을 알아야 합니다! 수행 중인 작업에 대해 알고 있는 경우에만 패키지를 설치하십시오.

echo 'deb http://ftp.debian.org/debian jessie-backports main' | sudo tee /etc/apt/sources.list.d/backports.list

3) 리눅스 시스템을 업데이트하세요

sudo apt-get update

4) 인증서봇 설치

sudo apt-get install python-certbot-apache -t jessie-backports

5) 아파치 ServerName 및 ServerAlias ​​설정

sudo nano /etc/apache2/sites-available/000-default.conf

6) 아파치 구성 파일 편집

<VirtualHost *:80>
    . . .
    ServerName example.com
    ServerAlias www.example.com
    . . .
</VirtualHost>

7) 구문이 올바른지 확인하세요.

sudo apache2ctl configtest

8) 구성 파일이 괜찮아 보이면 Apache 서버를 다시 시작하십시오.

sudo systemctl restart apache2

9) certbot을 사용하여 인증서를 설정하고 화면의 지시를 따릅니다.

sudo certbot --apache

갱신

Let's Encrypt의 모든 인증서는 3개월 동안 유효합니다. 갱신하려면 수동으로 실행할 수 있습니다.

sudo certbot renew

또는 이 서비스를 크론 작업으로 자동화하세요.

sudo crontab -e

매주 월요일 오전 2시 30분에 갱신을 호출하려면 다음 행을 입력합니다.

. . .
30 2 * * 1 /usr/bin/certbot renew >> /var/log/le-renew.log

여기에서 더 자세한 튜토리얼을 따라갈 수 있습니다.https://www.digitalocean.com/community/tutorials/how-to-secure-apache-with-let-s-encrypt-on-debian-8

답변2

제 경우에는 관련 도메인마다 Apache SSL 구성 파일을 교체하여 이 문제를 해결했습니다.

ServerName mydomain.com
ServerAlias www.mydomain.com

에 의해 :

ServerName www.mydomain.com
ServerAlias mydomain.com

내 인증서는 "mydomain.com"이 아니라 "www.mydomain.com"용이기 때문입니다.

완전한 아파치 파일:

<IfModule mod_ssl.c>
<VirtualHost *:443>
    ServerAdmin [email protected]
        ServerName www.mydomain.com
        ServerAlias mydomain.com
    DocumentRoot /home/mydomain.com/public_html
SetOutputFilter DEFLATE
SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|ico|png)$ \ no-gzip dont-vary
SetEnvIfNoCase Request_URI \.(?:exe|t?gz|zip|bz2|sit|rar)$ \no-gzip dont-vary
SetEnvIfNoCase Request_URI \.pdf$ no-gzip dont-vary
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html

    <Directory />
        Options +FollowSymLinks
        AllowOverride All
    </Directory>
    <Directory /home/mydomain.com/public_html>
        Options -Indexes +FollowSymLinks +MultiViews
        AllowOverride All
        Order allow,deny
        allow from all
    </Directory>

    ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
    <Directory "/usr/lib/cgi-bin">
        AllowOverride All
        Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
        Order allow,deny
        Allow from all
    </Directory>


ErrorLog ${APACHE_LOG_DIR}/error.log

LogLevel warn
SSLCertificateFile /etc/letsencrypt/live/www.mydomain.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/www.mydomain.com/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf
</VirtualHost>
</IfModule>

답변3

다른 SSL 오류가 표시되지 않고 httpd.conf 파일에서 'LogLevel 디버그' 설정을 시도한 경우 이 오류 메시지는 httpd.conf 파일에 'Listen 443'이 누락되었음을 나타낼 수도 있습니다.

답변4

최근 자체 서명된 인증서가 만료되었을 때 이 문제가 발생했습니다. 나는 한 웹 사이트에서 새 인증서를 생성하는 명령을 검색하고 복사했습니다.

sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/apache-selfsigned.key -out /etc/apache2/ssl/apache.crt

내 아파치 구성 파일: /etc/apache2/sites-available/default-ssl.conf. 인증서 파일 및 키 파일은 다음 파일명을 참조합니다.

    SSLCertificateFile  /etc/apache2/ssl/apache.crt
    SSLCertificateKeyFile /etc/apache2/ssl/apache.key

따라서 내 경우에 표시된 오류는 SSL 인증서를 생성할 때 인증서 키 파일의 올바른 위치를 제공하는 것만으로도 쉽게 수정할 수 있었습니다.

따라서 올바르게 사용하고 입력했어야 하는 명령은 다음과 같습니다.

sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/apache2/ssl/apache.key -out /etc/apache2/ssl/apache.crt

관련 정보