localhost의 Apache에서 자체 서명 된 인증서로 HTTPS를 설정하라는 요청을 받았지만 실제로 어떻게합니까? 나는 전혀 모른다.
답변
방금 이것을 시도 했습니다-Windows의 로컬 호스트 Apache에서 일부 개발 코드를 테스트해야했습니다 . 이것은 WAAAY보다 어려웠습니다. 그러나 많은 머리를 깎은 후 작동하는 단계는 다음과 같습니다.
내 Apache 설치 openssl.exe
가 도움 이된다는 것을 알았습니다 . 사본이 없으면 다운로드해야합니다. 내 사본은 Apache2\bin
폴더에 있었으므로 아래를 참조하십시오.
단계 :
- Apache conf 폴더에 대한 쓰기 권한이 있는지 확인하십시오.
Apache2\conf
폴더 에서 명령 프롬프트를 엽니 다- 유형
..\bin\openssl req -config openssl.cnf -new -out blarg.csr -keyout blarg.pem
-
다음을 제외한 모든 질문을 비워 둘 수 있습니다.
- PEM 암호 : “암호”와 같은 임시 암호
- 공통 이름 : 서버의 호스트 이름
-
완료되면 다음을 입력하십시오.
..\bin\openssl rsa -in blarg.pem -out blarg.key
-
다음을 입력하여 자체 서명 된 인증서를 생성하십시오.
..\bin\openssl x509 -in blarg.csr -out blarg.cert -req -signkey blarg.key -days 365
-
Apache
conf\httpd.conf
파일을 열고 SSL 모듈이 활성화되어 있는지 확인하십시오.이 줄의 시작 부분에는 해시가 없어야합니다.
LoadModule ssl_module modules/mod_ssl.so
-
일부 Apache 설치는 SSL 구성을 별도의 파일에 배치합니다. 그렇다면 SSL conf 파일이 포함되어 있는지 확인하십시오. 내 경우에는이 줄의 주석을 해제해야했습니다.
Include conf/extra/httpd-ssl.conf
-
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"
- 업데이트
-
Apache를 다시 시작하십시오.
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.crt 및 server.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의 기본 페이지가 이와 같은지 확인하십시오.
- 웹 연결을 암호화하려면 CA (인증 기관)의 인증서가 필요하거나 자체 서명 된 인증서를 사용할 수 있습니다. 다음 명령을 사용하여 자체 서명 된 인증서를 작성하십시오.
openssl req -x509 -newkey rsa : 2048 -keyout mykey.key -out mycert.pem -days 365-노드
아래 표시된대로 정보를 작성하십시오.
mykey.key 및 mycert.pem 은 현재 작업 디렉토리에 작성되어야합니다.
- 인증서와 키를 공통 위치로 옮기면 apache2 웹 서버에서 쉽게 찾을 수 있습니다. 다음 명령을 실행하겠습니다
sudo cp mycert.pem / etc / ssl / certs
sudo cp mykey.key / etc / ssl / private
- 서버에서 SSL 모드를 활성화하자
sudo a2enmod ssl
다음과 같이 출력되어야합니다
- 위에서 생성 한 자체 서명 된 인증서와 키를 사용하도록 apache2를 구성 해 봅시다.
sudo vi /etc/apache2/sites-available/default-ssl.conf
이 두 줄을 찾아 인증서와 키 경로로 바꾸십시오.
머리 글자
결정적인
- 사이트 활성화
CD / etc / apache2 / sites-available /
sudo a2ensite default-ssl.conf
- apache2 서비스를 다시 시작하십시오.
sudo 서비스 아파치 2 재시작
- HTTPS에서 apache2 웹 서버를 확인하십시오. 브라우저를 다시 열고 입력
자체 서명 된 인증서로 서버를 구성했기 때문에 보려는 페이지가 안전하지 않다는 경고와 함께 이와 같은 결과가 출력되어야합니다.
- HTTPS 엔드 포인트로 apache2를 구성한 것을 축하합니다. 이제 고급 -> 예외 추가 -> 보안 예외 확인 을 클릭하면 기본 페이지가 다시 나타납니다.
답변
Windows + Apache 2.4 (예 :
-
httpd.conf
파일 에서 ssl_module의 주석을 해제 하십시오.LoadModule ssl_module modules/mod_ssl.so
-
httpd.conf
파일 에서 80 포트와 같은 443 포트를 수신 하십시오.Listen 80 Listen 443
-
주석 해제
httpd.conf
파일에 가상 호스트 포함 .# Virtual hosts Include conf/extra/httpd-vhosts.conf
-
귀하의 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>
포트 번호 443
와 SSL......
행만 일반 http 구성과 다릅니다.
구성 파일을 저장하고 아파치 서비스를 다시 시작하십시오. 그런 다음 https : // localhost /를 방문 하십시오.
처음에는 안전하지 않다는 경고가 웹 브라우저에 표시됩니다. 계속을 선택하십시오.
답변
openssl 설치가 편리하다고 가정하면 실제로 매우 쉽습니다. (어떤 플랫폼에 있습니까?)
linux / solaris / mac os / x를 사용한다고 가정하면 Van의 Apache SSL / TLS mini-HOWTO 는 여기서 재현하지 않는 훌륭한 연습을 제공합니다.
그러나 요약은 자체 서명 된 인증서를 작성해야한다는 것입니다. 아마도 퍼블릭 웹 서버가 아닌 개발을 위해 아마도 localhost에 대해 아파치를 실행하고 있기 때문에 자체 서명 된 인증서를 신뢰할 수 있고 브라우저가 사용자에게 던지는 경고를 무시할 수 있다는 것을 알게 될 것입니다.
답변
이것은 Apache2와 비슷한 Ubuntu, Mint이어야합니다.
좋은 가이드이므로 다음을 따르십시오.
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
당신은 그것을 얻을 수 있습니다.
리눅스에 도움이되기를 바랍니다.