Eduroam 인증서 생성

radsec 설정

공통 인증서

# ca 개인 키 생성
openssl genrsa -aes256 -out ca.key 4096

# ca 인증서 생성
openssl req -new -x509 -days 365 -key ca.key -out ca.crt


서버별 인증서

# 서버 개인 키 생성(Freeradius가 부팅 시 읽어야 하므로 암호 제거)
openssl genrsa -out server.key 2048

# 서버 설정 파일 생성
cat > server.cnf << EOF
[ req ]
distinguished_name = req_distinguished_name
req_extensions = v3_req
prompt = no

[ req_distinguished_name ]
C = 국가코드
ST = 도시
L = 구/시
O = SERVER
OU = RADIUS
CN = 서버의 FQDN (도메인) # 도메인이 필수는 아님

[ v3_req ]
subjectAltName = @alt_names

[ alt_names ]
DNS.1 =   # <-- 서버의 FQDN
IP.1 =    # <--서버의 실제 IP 주소
EOF

# 서버 csr 생성
openssl req -new -key server.key -out server.csr -config server.cnf

# 서버 인증서 발급
openssl x509 -req -in server.csr -CA ca.crt -CAkey ca.key \
-CAcreateserial -out server.crt -days 365 -sha256 \
-extfile server.cnf -extensions v3_req

유저 권한

 usermod -a -G freerad radsecproxy


server.pem 생성

#server.cnf
cat > server.cnf << 'EOF'
basicConstraints = CA:FALSE
keyUsage = digitalSignature, keyEncipherment
extendedKeyUsage = serverAuth, clientAuth
subjectKeyIdentifier = hash
authorityKeyIdentifier = keyid,issuer
EOF

#server.key
openssl genrsa -out server.key 2048

#server.scr (ex KISTI)
openssl req -new -key server.key -out server.csr \
  -subj "/C=KR/ST=Daejeon/L=Daejeon/O=KISTI/CN=KISTI/emailAddress=admin@kisti.re.kr"

#server/pem
openssl x509 -req -in server.csr \
  -CA ca.pem -CAkey ca.key \
  -CAcreateserial -out server.pem \
  -days 3650 -sha256 \
  -extfile server.cnf


클라이언트 인증서 생성

#client.key
openssl genrsa -out client.key 2048

#client.csr
openssl req -new -key client.key -out client.csr -subj "/CN=kaist-test-client"

#client.crt
openssl x509 -req -days 365 -in client.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out client.crt

chmod o+r /경로/certs/*

#인증서 비밀번호 제거
openssl rsa -in server.key -out server.key