나는 http://robsnotebook.com/xampp-ssl-encrypt-passwords 할 수있는만큼이 가이드를 따르고 있습니다 .
그러나 https로 시작하는 페이지를 탐색 할 때마다 아파치 서버가 404 Object Not Found로 응답합니다.
내가 놓친 설정은 무엇입니까? 도움을 주셔서 감사합니다.
나는 http://robsnotebook.com/xampp-ssl-encrypt-passwords 할 수있는만큼이 가이드를 따르고 있습니다 .
그러나 https로 시작하는 페이지를 탐색 할 때마다 아파치 서버가 404 Object Not Found로 응답합니다.
내가 놓친 설정은 무엇입니까? 도움을 주셔서 감사합니다.
답변:
답을 찾았습니다. 파일 에서 포트 443 xampp\apache\conf\extra\httpd-ssl.conf
의 주석 SSL Virtual Host Context
페이지 아래에서 https가 다른 문서 루트에서 조회됨을 의미합니다.
문서 루트를 동일한 루트로 변경하면 문제가 해결됩니다.
sudo /Applications/XAMPP/xamppfiles/xampp disablessl
및 sudo /Applications/XAMPP/xamppfiles/xampp enablessl
각각을 사용하여 SSL이 작동하는지 확인하려면 SSL을 비활성화했다가 다시 활성화해야 할 수도 있음 ).
다음 xampp/apache/conf/extra/httpd-vhost.conf
과 같이 SSL을 구성 할 수도 있습니다 .
<VirtualHost *:443>
DocumentRoot C:/xampp/htdocs/yourProject
ServerName yourProject.whatever
SSLEngine on
SSLCertificateFile "conf/ssl.crt/server.crt"
SSLCertificateKeyFile "conf/ssl.key/server.key"
</VirtualHost>
나는 그것을 변경하지 않는 것이 좋습니다. httpd-ssl.conf
두 개 이상의 프로젝트가 있고 둘 이상의 프로젝트에 SSL이 필요한 경우
XAMPP의 경우 다음 단계를 수행하십시오.
G : \ xampp \ apache \ conf \ extra \ httpd-ssl.conf "
'DocumentRoot'텍스트를 검색합니다.
DocumentRoot DocumentRoot "G : / xampp / htdocs"를 DocumentRoot "G : / xampp / htdocs / project name"으로 변경합니다.
xampp / apache / conf / extra / httpd-vhost.conf에서 SSL 구성
<VirtualHost *:80>
DocumentRoot "C:/xampp/htdocs/myproject/web"
ServerName www.myurl.com
<Directory "C:/xampp/htdocs/myproject/web">
Options All
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
<VirtualHost *:443>
DocumentRoot "C:/xampp/htdocs/myproject/web"
ServerName www.myurl.com
SSLEngine on
SSLCertificateFile "conf/ssl.crt/server.crt"
SSLCertificateKeyFile "conf/ssl.key/server.key"
<Directory "C:/xampp/htdocs/myproject/web">
Options All
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
server.crt 및 server.key 경로가 올바르게 지정되었는지 확인하십시오. 그렇지 않으면 작동하지 않습니다.
httpd.conf에서 vhost를 활성화하는 것을 잊지 마십시오
# Virtual hosts
Include etc/extra/httpd-vhosts.conf
마침내 내 호스팅 xampp Windows 10 서버 웹 사이트에서 작동하도록했습니다. 즉 자물쇠가 SSL로 나왔습니다. 2020 년 11 월부터 xampp 버전을 사용하고 있습니다.
certbot.eff.org로 이동했습니다. 홈 페이지 소프트웨어 [apache] 및 시스템 [windows]에서 선택되었습니다. 그런 다음 다음 페이지에서 찾은 certbot 소프트웨어를 내 C 드라이브에 다운로드하여 설치했습니다.
그런 다음 명령 줄에서 [Windows 시작의 cmd를 열고 cmd를 열기 전에 마우스 오른쪽 버튼을 클릭하여 관리자로 cmd를 실행합니다.] 위의 Certbot 페이지에서 명령을 입력했습니다. 즉 system32로 이동했습니다 .-- C : \ WINDOWS \ system32> certbot certonly --standalone
그런 다음 프롬프트에 따라 내 도메인 이름을 입력했습니다. 이렇게하면 C : \ Certbot yourwebsitedomain 폴더에 cert1.pem 및 key1.pem으로 인증서가 생성되었습니다. cmd 창은 이것이 어디에 있는지 알려줍니다.
그런 다음이 이름을 cert1.pem에서 내 도메인 이름 또는 shorter + cert.pem으로 변경하고 domainname 또는 shorter + key.key에 대해서도 동일하게 변경했습니다. 이 파일을 각각 C : \ xampp \ apache \ ssl.crt 및 ssl.key 폴더에 복사했습니다.
그런 다음 G : \ xampp \ apache \ conf \ extra \ httpd-vhosts에 대해 다음을 입력했습니다.
<VirtualHost *:443>
DocumentRoot "G:/xampp/htdocs/yourwebsitedomainname.hopto.org/public/" ###NB My document root is public. Yours may not be. Or could have an index.php page before /public###
ServerName yourwebsitedomainnamee.hopto.org
<Directory G:/xampp/htdocs/yourwebsitedomainname.hopto.org>
Options Indexes FollowSymLinks Includes ExecCGI
AllowOverride All
Require all granted
</Directory>
ErrorLog "G:/xampp/apache/logs/error.log"
CustomLog "G:/xampp/apache/logs/access.log" common
SSLEngine on
SSLCertificateFile "G:\xampp\apache\conf\ssl.crt\abscert.pem"
SSLCertificateKeyFile "G:\xampp\apache\conf\ssl.key\abskey.pem"
</VirtualHost>
<VirtualHost _default_:443>
DocumentRoot "G:/xampp/htdocs/yourwebsitedomainnamee.hopto.org/public/"
###NB My document root is public. Yours may not be. Or could have an index.php page before /public###
SSLEngine on
SSLCertificateFile "conf/ssl.crt/abscert.pem"
SSLCertificateKeyFile "conf/ssl.key/abskey.pem"
CustomLog "G:/xampp/apache/logs/ssl_request.log" \
"%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
</VirtualHost>
주석 1. www.noip.com 을 사용 하여 도메인 이름을 등록했습니다. 노트 2. 대신 내가 작동하도록 가져올 수 없었기 때문에 SSL 인증서를 제공하도록 시도하십시오. 위의 방법이 대신 작동했습니다. Note3 저는 noip DUC 소프트웨어를 사용하여 개인적으로 호스팅하는 웹 사이트를 noip와 동기화 상태로 유지합니다. 주석 4. xampp에서 변경할 때마다 xampp 서버를 중지하고 시작하는 것이 매우 중요합니다. xampp 콘솔을 시작하는 대신 어떤 이유로 xampp가 실패하면 xampp 시작을 시도하면 문제를 해결할 수 있으므로 버그를 수정할 수 있습니다. 빠르게 복사하여 note.txt에 붙여 넣습니다.
Mac OS (catalina 또는 mojave)를 사용 중이고 Mac 용 XAMPP에서 HTTPS / SSL을 활성화하려는 경우 가상 호스트를 활성화하고 XAMPP에 포함 된 기본 인증서를 사용해야합니다. httpd-vhosts.conf
파일에 새 가상 호스트를 추가 하십시오 .
<VirtualHost *:443>
ServerAdmin webmaster@localhost.com
DocumentRoot "/Users/your-user/your-site"
ServerName your-site.local
SSLEngine on
SSLCertificateFile "etc/ssl.crt/server.crt"
SSLCertificateKeyFile "etc/ssl.key/server.key"
<Directory "/Users/your-user/your-site">
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Require all granted
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
여기에 Windows에 대한 더 나은 가이드가 있습니다.
https://shellcreeper.com/how-to-create-valid-ssl-in-localhost-for-xampp/
기본 단계 :
다음을 사용하여 로컬 도메인에 대한 SSL 인증서를 만듭니다. 위의 링크에서 자세한 내용을 참조하십시오 . https://gist.github.com/turtlepod/3b8d8d0eef29de019951aa9d9dcba546 https://gist.github.com/turtlepod/e94928cddbfc46cfbaf8c3e5856577d0
Windows (신뢰할 수있는 루트 인증 기관)에이 인증서를 설치합니다. 위 링크에서 자세한 내용을 참조하십시오.
Windows 호스트 (C : \ Windows \ System32 \ drivers \ etc \ hosts)에 사이트를 추가합니다. 예 : 127.0.0.1 site.test
XAMPP conf (C : \ xampp \ apache \ conf \ extra \ httpd-vhosts.conf)에 사이트를 추가합니다. 예 :
<VirtualHost *:80>
DocumentRoot "C:/xampp/htdocs"
ServerName site.test
ServerAlias *.site.test
</VirtualHost>
<VirtualHost *:443>
DocumentRoot "C:/xampp/htdocs"
ServerName site.test
ServerAlias *.site.test
SSLEngine on
SSLCertificateFile "crt/site.test/server.crt"
SSLCertificateKeyFile "crt/site.test/server.key"
</VirtualHost>
Apache와 브라우저를 다시 시작하면 완료됩니다!