Apache SSL 등급 확인

Linux, WWW
제가 운영하는 웹서버의 SSL 등급기 갑자기 궁금해져서 한번 테스트를 해보았습니다. 테스트에 사용된 사이트는 ssllabs.com 에 기능을 이용하였습니다. 아래에 링크를 첨부해 놓았습니다. https://www.ssllabs.com/ssltest/analyze.htm 결과는 좋게 A 등급이 나왔습니다. 서버에 사용하는 모든 버전이 업데이트 되면서 결과가 좋게 나온다고 생각은 하였지만 생각하는 부분과 결과를 눈으로 직접 보는것은 다른듯 합니다. 결과화면에 대한 캡쳐본 가끔식은 트렌드에 따라서 움직여야 하는 일이 있습니다. 특히 보안에 관련된 사항은 좀 더 많은 부분을 신경쓰고 현재 진형으로 가는 부분을 잘 적용하는것이 좋을듯 합니다. 위 결과 화면 아래에 더 많은 정보가 있지만 캡쳐를 할 이유가 없어서 위에 가장 중요한 화면만 캡쳐만 한것입니다.
Read More

HTTPS를 HTTP로 리디렉션하는 방법

Linux
SSL 보안서버 인증서가 적용된 상태에서 HTTPS를 HTTP로 리디렉션하고 싶은 경우, 다음 코드를 .htaccess 파일에 추가하면 됩니다. RewriteCond %{HTTPS} on RewriteEngine On RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI} 위의 코드가 잘 작동하지 않으면, 다음 코드를 시도해볼 수 있습니다. Options +FollowSymLinks RewriteEngine On RewriteCond %{ENV:HTTPS} on RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI} [R=301,L] .conf 파일을 사용하는 경우: ServerName domain.com RewriteEngine On RewriteCond %{HTTPS} on RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI} SSLEngine on SSLCertificateFile /etc/apache2/ssl/domain.crt SSLCertificateKeyFile /etc/apache2/ssl/domain.key SSLCACertificateFile /etc/apache2/ssl/domain.crt Siteground에서는 다음과 같은 코드를 제안하네요. (출처: Redirect from HTTPS to HTTP) Redirect HTTPS to HTTP RewriteCond %{HTTP:X-Forwarded-Proto} =https RewriteRule ^(.*)$ http://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] 참고로 위의 코드는 모두 유효한 SSL 인증서가 있는 경우에만 작동합니다. 유효한 SSL 인증서가 없는 경우 https://…로 접속하면 보안인증서 오류가 표시되고 http://…로 리디렉션되지 않습니다.
Read More
[Ubuntu] SSL 인증서 설치

[Ubuntu] SSL 인증서 설치

Linux
 SSL 발급 및 적용 방법 인증서 발급 프로그램을 서버에 설치해야한다. Let’s Encrypt 는 Ubuntu 16.04 LTS 에서 기본패키지로 추가되었다. 따라서 쉽게 설치할 수 있다. 반면 Ubuntu 14.04 LTS 에서는 기본패키지가 아니기 때문에 몇 줄 더 입력해야 한다. 발급, 설치, 적용 방법은 다음과 같다. 모든 단계는 Linux root 계정으로 진행한다. [code shell] # apt-get install letsencrypt # letsencrypt certonly --webroot --webroot-path=/home/myuser3/www -d myuser3.com -d www.myuser3.com [/code] * 명령어 설명 -d 는 도메인명을 지정하면 된다. 최대 100개의 도메인 이름을 지정할 수 있다. (한 인증서가 서로다른 100개의 도메인 인증을 할 수 있음) 일반적으로는 기본도메인과 www 도메인 두개를 지정한다. -webroot 는 웹인증을 받을 것이라는 것이다. 외부 인증프로그램이 -d 에 지정된 도메인 사이트에 접속한다. -webroot-path 는 웹루트의 경로이다. 보통 index 페이지가 위치하는 경로이다. 인증 프로그램이 이 경로에 임시 랜덤 파일을 생성하고, 외부 인증프로그램이 이 파일을…
Read More

[PHP] CURL 설정

PHP
NAME CURLOPT_SSLVERSION - set preferred TLS/SSL version SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_SSLVERSION, long version); DESCRIPTION Pass a long as parameter to control which version of SSL/TLS to attempt to use. Use one of the available defines for this purpose. The available options are:   CURL_SSLVERSION_DEFAULT The default action. This will attempt to figure out the remote SSL protocol version. CURL_SSLVERSION_TLSv1 TLSv1.x CURL_SSLVERSION_SSLv2 SSLv2 CURL_SSLVERSION_SSLv3 SSLv3 CURL_SSLVERSION_TLSv1_0 TLSv1.0 (Added in 7.34.0) CURL_SSLVERSION_TLSv1_1 TLSv1.1 (Added in 7.34.0) CURL_SSLVERSION_TLSv1_2 TLSv1.2 (Added in 7.34.0) DEFAULT CURL_SSLVERSION_DEFAULT PROTOCOLS All TLS based protocols: HTTPS, FTPS, IMAPS, POP3, SMTPS etc. EXAMPLE   CURL *curl = curl_easy_init(); if(curl) {   curl_easy_setopt(curl, CURLOPT_URL, "https://example.com");   /* ask libcurl to use TLS version 1.0 or later */   curl_easy_setopt(curl, CURLOPT_SSLVERSION, CURL_SSLVERSION_TLSv1);   /* Perform the request */  …
Read More