답변:
.crt 파일은 연결된 모든 항목으로 전송됩니다. 공개입니다. ( chown root:root
및 chmod 644
)
개인 키 위치에 추가하려면 제대로 고정하고 있는지 확인하십시오. ( chown root:ssl-cert
및 chmod 640
)
ssl-cert
, 아마도 다른 것들 중에서도 자체 서명 된
개인 키 파일 을 올바르게 보호하기 만하면 어디에 두 었는지는 중요하지 않습니다 . 공인 인증서는 공개; 보호가 필요 없음-서버 권한 또는 기타.
답변을 확장하기 위해 기본 위치를 사용하지 않습니다 /etc/ssl
.
백업 및 기타 이유로 인해 모든 광산을 별도의 영역에 보관하는 것이 더 쉽습니다.
Apache SSL의 경우에있는 /etc/apache2/ssl/private
"루트 영역"또는 이와 유사한 루트 영역을 유지 /etc/
합니다.
이 게시물은 Ubuntu (Debian) + Apache를 대상으로하지만 대부분의 시스템에서 작동합니다.-
주어진 구성 (apache / nginx / etc)에서 권한을 적용하고 위치 / 경로를 업데이트하십시오.
SSL 키 파일이 올바르게 보호 된 경우 (디렉토리 및 파일) 문제가 없습니다. 메모를 참고하십시오!
sudo mkdir /etc/apache2/ssl
sudo mkdir /etc/apache2/ssl/private
sudo chmod 755 /etc/apache2/ssl
sudo chmod 710 /etc/apache2/ssl/private
참고 : 우분투에서 그룹을 chmod 710
지원합니다 ssl-cert
. (댓글 참조) on
권한을 설정해도 정상적으로 작동합니다.700
/etc/apache2/ssl/private
올려 공중 에서 중간 인증서 (들)와 함께 WWW SSL 인증서 (들)을
/etc/apache2/ssl
넣어 개인 SSL 키 (들)/etc/apache2/ssl/private
sudo chown -R root:root /etc/apache2/ssl/
sudo chown -R root:ssl-cert /etc/apache2/ssl/private/
참고 : ssl-cert 그룹
이없는 경우 위의 줄에서 'root : root'를 사용하거나 두 번째 줄을 건너 뛰십시오.
공공 인증서
sudo chmod 644 /etc/apache2/ssl/*.crt
개인 키
sudo chmod 640 /etc/apache2/ssl/private/*.key
참고 :
Ubuntu ssl-cert 그룹으로 인해 그룹 권한이 READ (640)로 설정되었습니다. '600'도 좋습니다.
sudo a2enmod ssl
(마지막 단락 참조) *
sudo nano /etc/apache/sites-available/mysiteexample-ssl.conf
sudo a2ensite mysiteexample-ssl
# ^^^^^^^^^^^^^^^^^ <-Substitute your ".conf" filename(s)
sudo service apache2 restart
또는
sudo systemctl restart apache2.service
* 이것은 다시 질문을 넘어서지 만 기본 Apache SSL 사이트 구성 파일 ( sudo cp /etc/apache2/sites-available/default-ssl.conf /etc/apache2/sites-available/mysiteexample-ssl.conf
)을 간단한 (Ubuntu / Debian) Apache / SSL 'conf'파일에서 일반적으로 사용되는 기본 지시문 / 디렉토리의 좋은 시작점 / 예로 복사 할 수 있습니다. . 일반적으로 자체 서명 된 SSL 인증서 + 키 (뱀 고기), CA 번들 및 지정된 SSL 사이트에 사용되는 공통 지시문을 가리 킵니다 .
복사 한 후에는 새 .conf 파일을 편집하고 위의 새 정보 / 경로에 따라 필요에 따라 추가 / 제거 / 업데이트 한 다음 실행 sudo a2ensite mysiteexample-ssl
하여 활성화하십시오.
<VirtualHost *:443>
섹션에 다음 sites-available/mysite.conf
과 같은 인증서를 포함시켜야합니다.SSLEngine on
SSLCertificateFile /etc/apache2/ssl/mysite.crt
SSLCertificateKeyFile /etc/apache2/ssl/private/mysite.key
여기에 모든 응답은 OK 것,하지만 난 내가 발견 한 것은 당신이 체인 파일을 마련하는 중간체 또는 뿌리와 인증서를 연결하는 경우 ... 문제가 언급하고자 하지 않는 것을 넣어 /etc/ssl/certs
때 때문에, c_rehash
루트 또는 중간에 인증서로 인해 해시 심볼릭 링크가 생성 될 수 있습니다.
그런 다음 나중에 인증서가 만료되어 제거하고 다시 실행할 c_rehash
줄 모르는 경우 /etc/ssl/certs
디렉토리 에서 해시 심볼릭 링크가 손상되어 로컬 컴퓨터가 연결을 시도 할 때 이상한 일이 발생하기 시작합니다. SSL이며 유효성을 검사 할 루트를 찾을 수 없습니다. 예를 들어 curl으로 갑자기 갑자기 시작했습니다.
curl: (60) SSL certificate problem: unable to get issuer certificate
오래된 .crt 및 연결된 .pem 파일을 정리 한 직후에 /etc/ssl/certs
.
최소한 다른 체인을 다른 곳에 저장하면이 문제를 피할 수 있습니다. 나는 /etc/ssl/local_certs
인증서와 체인을 보유 하기 위해 결국을 만들었 으므로 CA 인증서가 엉망이되어 길을 잃지 않았습니다./etc/ssl/certs
개별 파일 / 디렉토리에 대한 권한과 같이 설정되어있는 경우 안전하지 않은 장소 정말이 아니다 chown root :0 private.key
및 chmod 600 private.key
그래서 루트 만이 읽을 수는. CSR 및 인증서 파일은 말 그대로 민감하지 않습니다.
이러한 권한을 사용하면 언급 한 경로와 / usr / local / ssl이 좋습니다.
올바른 위치 :
/etc/ssl/certs/
에 대한 .crt
파일/etc/ssl/private
에 대한 .key
파일소유자 는 root:root
둘 다에 있어야합니다 ( sudo chmod root:root <file>
필요한 경우 변경하는 데 사용).
권한 :
644
에 대한 .crt
파일600
에 대한 .key
파일이 작동합니다 nginx
.
.crt
경우 타임 스퀘어 광고판에 올려 놓을 수 있습니다 .