일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- 외국인집구하기
- 홈하다미국
- 윈도우서버
- 게시판
- 홈하다
- 뉴질랜드렌트
- 선스크린
- mongo
- node
- 홈하다뉴질랜드
- 외국인주택구입
- 말듣게하기
- 전자담배
- react
- Express
- 미국집렌트
- 뉴질랜드집구하기
- 뉴질랜드
- 유모차태우기
- 미국집구하기
- 오클랜드
- 뉴질랜드_여자혼자_여행하기
- 금연
- 팔빠지날
- 보안
- 노드
- 리액트
- 뉴질랜드범죄
- 용한의느님
- 서버 2016
- Today
- Total
이런일도있었어
윈도우서버에서 OPENSSL을 이용해서 Certificate발행 MYSQL 적용 본문
OPENSSL 을 다운로드 받는다.
폴더를 생성한다.
md foldername
명령어를 실행하여 openssl 커맨드를 사용할 수 있게 한다.
set OPENSSL_CONF=c:\OpenSSL-Win64\bin\openssl.cfg
cmd 에서 아래 명령어를 하줄씩 처리한다.
# Create CA certificate
openssl genrsa 2048 > ca-key.pem
openssl req -new -x509 -nodes -days 3600 -key ca-key.pem -out ca.pem
# Create server certificate, remove passphrase, and sign it
# server-cert.pem = public key, server-key.pem = private key
openssl req -newkey rsa:2048 -days 3600 -nodes -keyout server-key.pem -out server-req.pem
openssl rsa -in server-key.pem -out server-key.pem
openssl x509 -req -in server-req.pem -days 3600 -CA ca.pem -CAkey ca-key.pem -set_serial 01 -out server-cert.pem
# Create client certificate, remove passphrase, and sign it
# client-cert.pem = public key, client-key.pem = private key
openssl req -newkey rsa:2048 -days 3600 -nodes -keyout client-key.pem -out client-req.pem
openssl rsa -in client-key.pem -out client-key.pem
openssl x509 -req -in client-req.pem -days 3600 -CA ca.pem -CAkey ca-key.pem -set_serial 01 -out client-cert.pem
MYSQL INI 파일을연다.
Linux 는 my.cnf 윈도우는 my.ini
윈도우 경우 my.ini 경로는 C:\ProgramData\MySQL\MySQL Server 5.7\ (hidden 처리 되어있음으로 경로를 직접 쳐야함)
my.ini 에서
[mysqld] 아래에
ssl-ca = "C:\mysqlCerts\ca-cert.pem"
ssl-cert = "C:\mysqlCerts\\server-cert.pem"
ssl-key = "C:\mysqlCerts\\server-key.pem"
(\\ 맞음)
Mysql TLS1.2 연결 문제
https://dev.mysql.com/doc/refman/5.7/en/creating-ssl-files-using-openssl.html
https://serverfault.com/questions/783861/enabling-ssl-in-mysql-when-using-windows-as-a-server-and-client
https://blogs.perficient.com/microsoft/2016/04/tsl-1-2-and-net-support/
https://dev.mysql.com/doc/connector-net/en/connector-net-entityframework60.html
http://mysqlblog.fivefarmers.com/2015/12/10/ssltls-improvements-in-mysql-5-7-10/
https://bugs.mysql.com/bug.php?id=75239
Mysql 에 들어가서
show global variables like '%ssl%';
variables name 과 value가 나오면 Have_openssl 과 have_ssl 에 YES가 나와야 정상임.
만약 웹사이트 connection 에러가 발생한다면
(https://forums.iis.net/t/1233122.aspx)
1.Control Panel,--> Administrative Tools, -->Local Security Policy.
2. Local Security Settings, --> Local Policies -->Security Options.
3. Policye --> cryptography: Use FIPS compliant algorithms for encryption, hashing, and signing -->Enabled.
4. gpupdate /force
이렇게 해도 안될경우 C:\ProgramData\Microsoft\Crypto\RSA 에서 grant "Network Services" Read permission 을 "MachineKeys"
으로 변경
서버 리스타트.