.png)
Azure Cloud MySQL 서버에 대한 암호화된 db 연결을 생성해야 합니다. Azure MySQL 서버에 연결할 때 사용할 수 있도록 "BaltimoreCyberTrustRoot.crt.pem"이라는 CA 인증서를 제공했습니다.
내 질문은 MySQL 서버에 연결할 때 아래와 같이 키와 인증서 파일 모두에 대한 경로를 제공해야 한다는 것입니다. 나만의 파일을 어떻게 생성합니까, 아니면 위의 두 파일도 필요합니까? 공백으로 남겨두면 연결이 안전하지 않거나 덜 안전하다는 의미입니까?
'mysql' => [
'driver' => 'mysql',
'host' => env('DB_HOST', '127.0.0.1'),
'port' => env('DB_PORT', '3306'),
'database' => env('DB_DATABASE', 'forge'),
'username' => env('DB_USERNAME', 'forge'),
'password' => env('DB_PASSWORD', ''),
'unix_socket' => env('DB_SOCKET', ''),
'charset' => 'utf8mb4',
'collation' => 'utf8mb4_unicode_ci',
'prefix' => '',
'strict' => true,
'engine' => null,
'options' => array(
PDO::MYSQL_ATTR_SSL_KEY => env('CLIENT_KEY', ''),
PDO::MYSQL_ATTR_SSL_CERT => env('CLIENT_CERT', ''),
PDO::MYSQL_ATTR_SSL_CA => env('CA_CERT', ''),
PDO::MYSQL_ATTR_SSL_VERIFY_SERVER_CERT => false,
),
],
답변1
KEY와 CERT는 상호 인증, 즉 클라이언트 인증서에 의한 인증에만 사용됩니다. 그러나 이러한 종류의 인증은 여기서 요구 사항이 아닌 것 같으므로 KEY 및 CERT는 전혀 사용되지 않습니다.
그들이 당신에게 준 것은 대신 서버 인증서를 발급한 CA, 즉 CA_CERT입니다.
답변2
클라이언트 인증서를 다루고 있다고 가정합니다.
pem을 별도의 부분/파일로 변환할 수 있습니다. 이것이 해결책이 될 수 있습니다
다음을 사용하여 pem을 crt로 변환할 수 있었습니다.
openssl x509 -outform der -in C:\path\to\your-cert.pem -out C:\path\to\your-cert.crt
그리고 키의 경우:
openssl pkey -in foo.pem -out foo.key