일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- javscript
- 겨울카카오인턴
- Network
- Collections
- 파이썬
- Spring
- JavaScript
- Collection
- lambda calculus
- 로버트마틴
- 디자인패턴
- DesignPattern
- Rails
- functional programming
- 큐
- Pattern
- 함수형 프로그래밍
- 자바
- tcp
- 스택
- 프로그래머스
- Eclipse
- Python
- JDBC
- 람다 칼큘러스
- design-pattern
- exception
- Java
- 백준
- solid
Archives
- Today
- Total
개발자 노트
로컬용 TLS 통신 본문
주의사항
ssl 개발용으로, private key에 비밀번호는 걸지 않았습니다.
준비물
open-ssl 3.0.1 설치
Root CA
키 생성
openssl genrsa -out rootCA.key 2048
config 작성
[ req ]
default_bits = 2048
default_md = sha256
distinguished_name = req_distinguished_name
extensions = ext
prompt = no
[ext]
basicConstraints = critical, CA:TRUE
subjectKeyIdentifier = hash
authorityKeyIdentifier = keyid:always, issuer:always
keyUsage = critical, keyCertSign, cRLSign, digitalSignature
[req_distinguished_name]
CN = Juro Root CA
C = KR
ST = Gyeonggi-do
L = Seongnam-si
O = Juro Root CA Inc
OU = Juro Home
CSR 생성
openssl req -new -key rootCA.key -out rootCA.csr -nodes -config rootCA.conf
RootCA certificate 생성
openssl x509 -req -days 3650 -extensions ext -set_serial 1 -in rootCA.csr -signkey rootCA.key -out rootCA.crt -extfile rootCA.conf
rootCA를 System에 등록
- RootCA를 keyChain에 등록
- 항상 신뢰로 표시
Server
비밀키 생성
openssl genrsa -out server.key 2048
conf생성
[ req ]
extensions = ext
default_bits = 2048
default_md = sha256
distinguished_name = dn
prompt = no
[dn]
CN = localhost
C = KR
L = Sungnam-Si
O = Juro Inc
OU = Home
[ext]
extendedKeyUsage = serverAuth, clientAuth
subjectAltName = @alt_names
keyUsage = critical, digitalSignature, keyEncipherment
authorityKeyIdentifier = keyid,issuer
subjectKeyIdentifier = hash
basicConstraints = critical, CA:FALSE
[alt_names]
DNS.1 = localhost
DNS.2 = localhost.*
DNS.3 = *.localhost
csr생성
openssl req -new -key server.key -out server.csr -config server.conf
server cert생성
openssl x509 -req -days 365 -extensions ext -in server.csr -CA rootCA.crt -CAcreateserial -CAkey rootCA.key -out server.crt -extfile server.conf
저장소
pkcs12로 저장하기
openssl pkcs12 -export -inkey server.key -in server.crt -out server.p12
Spring Boot 설정
properties
server.ssl.key-store-type=PKCS12
server.ssl.key-store=classpath:server.p12
server.ssl.key-store-password=12qw12
server.ssl.enabled=true
server.port=8443
결과
이슈
ssl 접속 불가능.
daum 비교하여 시도 1 ~ 시도 5까지 적용.
시도1
주체키, 기관키 추가
안됨
시도2
키사용 중요 예로 설정
안됨
시도3
rootCA에서
키사용에서 디지털서명 추가,
카사용 중요 예로 설정.
제약에서 path 길이 삭제
안됨
시도4
기본제약조건 추가
안됨
시도5
기본제약조건 -중요 추가
안됨
시도6
nsCerType = sslCA 추가
안됨
- 삭제
시도7
사파리에서 서명 알고리즘이 잘못되었다고 함.
sha1에서 sha256으로 수정
→ openssl version을 2.8.3일 땐 sha256이 적용 안되고 3.0.1로 수정하니 적용됨.
→ 에러통과 및 유효기간이 너무 길다는 에러로 변경
시도8
Server 인증서의 유효기간을 1년으로 수정
통과
반응형
'Web' 카테고리의 다른 글
간소화한 Transaction (0) | 2022.07.15 |
---|---|
JWT 형식에 대한 의문 WITH RFC 7519 (0) | 2022.06.21 |
dataTable 구현 (0) | 2021.06.01 |
[Browser] 크롬에서 console.log가 안되는 경우 (0) | 2020.06.16 |
[Javascript]Transition 작동문제(infinite sliding window...) (0) | 2020.06.15 |
Comments