[apache] localhost에서 Apache에 HTTPS를 허용하려면 어떻게합니까?

localhost의 Apache에서 자체 서명 된 인증서로 HTTPS를 설정하라는 요청을 받았지만 실제로 어떻게합니까? 나는 전혀 모른다.



답변

방금 이것을 시도 했습니다-Windows의 로컬 호스트 Apache에서 일부 개발 코드를 테스트해야했습니다 . 이것은 WAAAY보다 어려웠습니다. 그러나 많은 머리를 깎은 후 작동하는 단계는 다음과 같습니다.

내 Apache 설치 openssl.exe가 도움 이된다는 것을 알았습니다 . 사본이 없으면 다운로드해야합니다. 내 사본은 Apache2\bin폴더에 있었으므로 아래를 참조하십시오.

단계 :

  1. Apache conf 폴더에 대한 쓰기 권한이 있는지 확인하십시오.
  2. Apache2\conf폴더 에서 명령 프롬프트를 엽니 다
  3. 유형
    ..\bin\openssl req -config openssl.cnf -new -out blarg.csr -keyout blarg.pem
  4. 다음을 제외한 모든 질문을 비워 둘 수 있습니다.

    • PEM 암호 : “암호”와 같은 임시 암호
    • 공통 이름 : 서버의 호스트 이름

  5. 완료되면 다음을 입력하십시오.
    ..\bin\openssl rsa -in blarg.pem -out blarg.key

  6. 다음을 입력하여 자체 서명 된 인증서를 생성하십시오.
    ..\bin\openssl x509 -in blarg.csr -out blarg.cert -req -signkey blarg.key -days 365

  7. Apache conf\httpd.conf파일을 열고 SSL 모듈이 활성화되어 있는지 확인하십시오.이 줄의 시작 부분에는 해시가 없어야합니다.
    LoadModule ssl_module modules/mod_ssl.so

  8. 일부 Apache 설치는 SSL 구성을 별도의 파일에 배치합니다. 그렇다면 SSL conf 파일이 포함되어 있는지 확인하십시오. 내 경우에는이 줄의 주석을 해제해야했습니다.
    Include conf/extra/httpd-ssl.conf

  9. SSL 구성 httpd-ssl.conf에서 다음 줄을 업데이트해야했습니다.

    • 업데이트
      SSLSessionCache "shmcb:C:\Program Files (x86)\Zend\Apache2/logs/ssl_scache(512000)"

      SSLSessionCache "shmcb:C:/Progra\~2/Zend/Apache2/logs/ssl_scache(512000)"

      (모듈 혼동 경로에 브래킷, 그래서 우리는 그들을 탈출해야합니다)
    • DocumentRoot -웹 파일 폴더로 설정하십시오.
    • ServerName -서버의 호스트 이름
    • SSLCertificateFile "conf/blarg.cert"
    • SSLCertificateKeyFile "conf/blarg.key"


  10. Apache를 다시 시작하십시오.

  11. https://localhost/브라우저에 로드 하십시오.

잘만되면 당신은 이것을 지금까지 만들었습니다. 이 게시물을 다른 유용한 정보로 업데이트하십시오.

(스크린 샷은 Neil Obremski의 호의와 그의 유용한 기사 -현재는 구식입니다.)


답변

나는 이것을 위해 ngrok ( https://ngrok.com/ )를 사용합니다. ngrok는 명령 줄 도구이며 localhost에 대한 터널을 만듭니다. http와 https 연결을 모두 만듭니다. 다운로드 한 후 다음 명령을 실행해야합니다.

ngrok http 80

(버전 2에서 구문은 ngrok http 80입니다. 버전 2에서는 모든 포트를 터널링 할 수 있습니다.)

몇 초 후에 두 개의 URL이 제공됩니다.

http://a_hexadecimal_number.ngrok.com
https://a_hexadecimal_number.ngrok.com

이제 두 URL 모두 로컬 호스트를 가리 킵니다.


답변

여기에 가장 간단한 방법이 있습니다

먼저 server.crtserver.key 파일 (첨부 파일에서 찾기)을 apache / conf / ssl 디렉토리에 복사 하십시오.

그런 다음 httpd.conf 파일을 열고 다음 줄을 추가하십시오.

Listen 80
Listen 443

NameVirtualHost *:80
NameVirtualHost *:443

<VirtualHost *:443>
    DocumentRoot "d:/wamp/www"  #your wamp www root dir
    ServerName localhost
    SSLEngine on
    SSLCertificateFile "d:/wamp/bin/apache/Apache2.4.4/conf/ssl/server.crt"
    SSLCertificateKeyFile "d:/wamp/bin/apache/Apache2.4.4/conf/ssl/server.key"
</VirtualHost>


답변

웹 서버와주고받는 정보의 보안을 보호하려면 클라이언트와 서버 간의 통신 암호화를 활성화하는 것이 좋습니다. 이것을 종종 SSL 이라고 합니다 .

Apache2에서 자체 서명 된 인증서로 HTTPS를 설정해 봅시다. 따라야 할 단계를 나열하겠습니다.

  • 머신에 apache2 웹 서버를 설치하십시오. 리눅스 머신의 경우 터미널을 열고 다음을 입력하십시오.

sudo apt-get 설치 apache2

  • 성공적으로 설치 한 후 명령을 실행하여 apache2 서비스의 상태를 확인하십시오.

sudo 서비스 아파치 2 상태

출력해야합니다

Apache2 서비스 상태

  • 브라우저로 이동하여 입력

http : // localhost : 80

apache2의 기본 페이지가 이와 같은지 확인하십시오.

Apache2의 기본 출력

  • 웹 연결을 암호화하려면 CA (인증 기관)의 인증서가 필요하거나 자체 서명 된 인증서를 사용할 수 있습니다. 다음 명령을 사용하여 자체 서명 된 인증서를 작성하십시오.

openssl req -x509 -newkey rsa : 2048 -keyout mykey.key -out mycert.pem -days 365-노드

아래 표시된대로 정보를 작성하십시오.

openssl을 사용하여 자체 서명 된 인증서 작성

mykey.keymycert.pem 은 현재 작업 디렉토리에 작성되어야합니다.

  • 인증서와 키를 공통 위치로 옮기면 apache2 웹 서버에서 쉽게 찾을 수 있습니다. 다음 명령을 실행하겠습니다

sudo cp mycert.pem / etc / ssl / certs

sudo cp mykey.key / etc / ssl / private

  • 서버에서 SSL 모드를 활성화하자

sudo a2enmod ssl

다음과 같이 출력되어야합니다

SSL 사용

  • 위에서 생성 한 자체 서명 된 인증서와 키를 사용하도록 apache2를 구성 해 봅시다.

sudo vi /etc/apache2/sites-available/default-ssl.conf

이 두 줄을 찾아 인증서와 키 경로로 바꾸십시오.

머리 글자

default-conf

결정적인

구성 변경 후

  • 사이트 활성화

CD / etc / apache2 / sites-available /

sudo a2ensite default-ssl.conf

  • apache2 서비스를 다시 시작하십시오.

sudo 서비스 아파치 2 재시작

  • HTTPS에서 apache2 웹 서버를 확인하십시오. 브라우저를 다시 열고 입력

https : // localhost : 443

자체 서명 된 인증서로 서버를 구성했기 때문에 보려는 페이지가 안전하지 않다는 경고와 함께 이와 같은 결과가 출력되어야합니다.

여기에 이미지 설명을 입력하십시오

  • HTTPS 엔드 포인트로 apache2를 구성한 것을 축하합니다. 이제 고급 -> 예외 추가 -> 보안 예외 확인 을 클릭하면 기본 페이지가 다시 나타납니다.

예외 추가 후 페이지


답변

Windows + Apache 2.4 (예 :

  1. httpd.conf파일 에서 ssl_module의 주석을 해제 하십시오.

    LoadModule ssl_module modules/mod_ssl.so
    
  2. httpd.conf파일 에서 80 포트와 같은 443 포트를 수신 하십시오.

    Listen 80
    Listen 443
    
  3. 주석 해제 httpd.conf파일에 가상 호스트 포함 .

    # Virtual hosts
    Include conf/extra/httpd-vhosts.conf
    
  4. 귀하의 VirtualHost를 추가하십시오 conf/extra/httpd-vhosts.conf

    <VirtualHost _default_:443>
        DocumentRoot "D:/www"  #your site directory path
        ServerName localhost
        #ServerAlias localhost.com localhost2.com
        SSLEngine on
        SSLCertificateFile "${SRVROOT}/conf/ssl/server.crt"
        SSLCertificateKeyFile "${SRVROOT}/conf/ssl/server.key"
        <Directory "D:/www">
            Options -Indexes +FollowSymLinks +ExecCGI
            AllowOverride All
            Require all granted
        </Directory>
    </VirtualHost>
    

포트 번호 443SSL......행만 일반 http 구성과 다릅니다.

구성 파일을 저장하고 아파치 서비스를 다시 시작하십시오. 그런 다음 https : // localhost /를 방문 하십시오.

처음에는 안전하지 않다는 경고가 웹 브라우저에 표시됩니다. 계속을 선택하십시오.


답변

openssl 설치가 편리하다고 가정하면 실제로 매우 쉽습니다. (어떤 플랫폼에 있습니까?)

linux / solaris / mac os / x를 사용한다고 가정하면 Van의 Apache SSL / TLS mini-HOWTO 는 여기서 재현하지 않는 훌륭한 연습을 제공합니다.

그러나 요약은 자체 서명 된 인증서를 작성해야한다는 것입니다. 아마도 퍼블릭 웹 서버가 아닌 개발을 위해 아마도 localhost에 대해 아파치를 실행하고 있기 때문에 자체 서명 된 인증서를 신뢰할 수 있고 브라우저가 사용자에게 던지는 경고를 무시할 수 있다는 것을 알게 될 것입니다.


답변

이것은 Apache2와 비슷한 Ubuntu, Mint이어야합니다.

좋은 가이드이므로 다음을 따르십시오.

https://www.digitalocean.com/community/tutorials/how-to-create-a-ssl-certificate-on-apache-for-ubuntu-14-04

ssl.conf를 이와 유사하거나 유사하게 남겨 두십시오.

<VirtualHost _default_:443>
        ServerAdmin your@email.com
        ServerName localhost
        ServerAlias www.localhost.com

        DocumentRoot /var/www


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

당신은 그것을 얻을 수 있습니다.

리눅스에 도움이되기를 바랍니다.