tls_ssl

차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

양쪽 이전 판 이전 판
다음 판
이전 판
tls_ssl [2020/12/19 06:57] – [TLS/SSL] koovtls_ssl [2023/02/07 01:49] (현재) koov
줄 1: 줄 1:
 ====== TLS/SSL ====== ====== TLS/SSL ======
 +  * [[Let's Encrypt / certbot]]
 +  * [[curl 명령어로 인증서 정보 확인]]
 +
   * https://www.ssllabs.com/ - 웹 보안점검   * https://www.ssllabs.com/ - 웹 보안점검
   * https://sslmate.com/caa/ - CAA 생성기   * https://sslmate.com/caa/ - CAA 생성기
  
-===== Let's Encrypt certbot ====+  * [[https://rsec.kr/?p=190|DNS CAA 레코드는 무엇일까?]] 
-  * https://certbot.eff.org/docs/using.html Certbot Manual+  * [[https://rsec.kr/?p=242|디피 헬만 키 (Diffie-Hellman Key)]] 
 +  * [[https://wiki.mozilla.org/Security/Server_Side_TLS|Mozilla TLS Cipher Suite]] 
 +  * [[https://gruuuuu.github.io/security/what-is-x509/|X.509란?]]
  
-  * [[Let's Encrypt(CertBot) SSL with HAProxy]] +===== 암호화 종류 ===== 
-  * [[HAProxy SSL 설정]] +==== 대칭키 ==== 
-  * [[Let's Encrypt(CertBot) Wildcard Certificates]] +  ''DES'' 
-==== certbot 사용시 선택할 플러그인 ==== +  * ''AES'' 
-''certbot''으로 인증서 발급시 사용할 플러그인을 선택하는데 플러그인은 여러종류가 있지만 크게 ''http''방식과 ''dns''방식이 있다.+  * ''SEED'' 
 +  * ''ARIA''
  
-  * ''http'' 인증서를 적용할 머신에서 직접 발급받을때 사용하는 플러그인. 대부분의 경우에 사용가능하지만 와일드카드 ''*.domain.com'' 인증서 발급은 되지 않는다. +==== 공개키 ==== 
-  * ''dns'' 인증서를 사용할 머신이 아닌 다른곳에서 발급받을때 사용할 수 있다. 또한 와일드 카드 인증서 발급시 사용할 수 있다.+  * ''RSA'' 
 +  * ''DSA'' 
 +  * ''Diffie-Hellman''
  
-''http'' 방식은 발급받는 머신에서 let's encrypt쪽으로 직접 응답을 하는 방식으로 확인을 하는 구조이다. 예를들어 ''my.domain.dom''에 대한 인증서라면 당 도메인으로 접근하는 서버에 대해서 소유권한이 있는지를 확인하는게 목적이기 때문이다. ''%%--%%standalone'' 옵션을 대표적으로 많이 사용한다. +==== 시 ==== 
-''dns'' 방식은 발급받는 머신이 아닌 **도메인에 대한 전체 와일드카드 인증서를 발급**하기 때문에 __해당 도메인에 대한 소유권을 확인__하기 위해서 도메인에 ''TXT'' 레코드를 등록하여 확인하는 방식이다. ''%%--%%manual'' 옵션과 함께 ''%%--%%preferred-challenges dns'' 옵션을 추가로 같이 사용한다. ''%%--%%manual'' 옵션은 ''http'' 방식과 ''dns'' 방식 모두 사용할 수 있다.+  * ''MD5'' 
 +  ''SHA1'' 
 +  * ''SHA2'' (SHA-224, SHA-256, SHA-384, SHA-512, SHA-512/224, SHA-512/256) 
 +  * ''SHA3''
  
 +===== 공개키 인증서 형식 =====
 +{{::ssl:ssl-certificate-format.png|}}
 +
 +https://www.tutorialsteacher.com/https/ssl-certificate-format
 +
 +  * ''PEM''(''Privacy-enhanced Electronic Mail)'' : ''Base64 ASCII''로 encode 된 파일로 ''.pem'', ''.crt'', ''.cer'', ''.key''등이 여기에 속한다. ''pem'' 파일은 서버 인증서와 중간자 인증서, ''private key'' 가 해당 파일에 포함된다. ''crt'' 혹은 ''cer'' 파일로 서버 인증서나 중간자 인증서가 사용되고 개인키는 ''key''파일이 될수있다.
 +  * ''DER''(''Distingulished Encoding Rules)'' : ''binary'' 폼으로 ''.der'' 이나 ''.cer'' 파일들을 포함한다. 해당 인증서는 Java 기반 web 서버에서 주로 사용된다.
 +  * ''pfx'', ''p12'' ... : ''PKCS#12''(''Public Key Cryptography Standards #12'')
 +==== 인증서 포멧 변경 ====
 +<WRAP prewrap>
 +<code bash>
 +openssl x509 -in cert.crt -outform der -out cert.der
 +</code>
 +</WRAP>
 +
 +===== 인증서 생성 =====
 +
 +==== CA 인증서 생성 ====
 +<WRAP prewrap>
 +<code bash>
 +# key 생성
 +openssl genrsa -out ca.key 4096
 +# 인증서 생성
 +openssl req -x509 -new -nodes -sha512 -days 3650 \
 + -key ca.key \
 + -out ca.crt
 +</code>
 +</WRAP>
 +
 +==== 서버 인증서 생성 ====
 +<WRAP prewrap>
 +<code bash>
 +# key 생성
 +openssl genrsa -out ia.key 4096
 +
 +# CSR(인증요청서) 생성
 +openssl req -sha512 -new \
 +    -key ia.key \
 +    -out ia.csr
 +</code>
 +</WRAP>
 +
 +==== CSR(인증요청서) 서명 ====
 +
 +<WRAP prewrap>
 +<code bash>
 +# 인증요청서 서명
 +cat > v3.ext <<-EOF
 +authorityKeyIdentifier=keyid,issuer
 +basicConstraints=CA:FALSE
 +keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
 +extendedKeyUsage = serverAuth
 +subjectAltName = @alt_names
 +
 +[alt_names]
 +DNS.1=yourdomain.com
 +DNS.2=yourdomain
 +DNS.3=hostname
 +EOF
 +
 +openssl x509 -req -sha512 -days 3650 \
 +    -extfile v3.ext \
 +    -CA ca.crt -CAkey ca.key -CAcreateserial \
 +    -in ia.csr \
 +    -out ia.crt
 +</code>
 +</WRAP>
  
 ===== 디피-헬만 파라미터(dhparam) 키 는 무엇인가? ===== ===== 디피-헬만 파라미터(dhparam) 키 는 무엇인가? =====
줄 42: 줄 120:
   * https://rsec.kr/?p=242   * https://rsec.kr/?p=242
   * https://waspro.tistory.com/479   * https://waspro.tistory.com/479
- 
-===== 참고문서 ===== 
-  * [[https://rsec.kr/?p=190|DNS CAA 레코드는 무엇일까?]] 
  
  
  • tls_ssl.1608361031.txt.gz
  • 마지막으로 수정됨: 2020/12/19 06:57
  • 저자 koov