2017-03-15 62 views
4

Windows 10でExpress.jsの自己署名証明書を使用してlocalhostにサイトを設定しようとしています。ここにはExpress.jsサーバーコードがあります。SSL自己署名証明書のChrome(net :: ERR_CERT_COMMON_NAME_INVALID)エラー

index.js

const https = require('https') 
const express = require('express') 
const app = express() 
const fs = require('fs') 
const path = require('path') 

const httpsOptions = { 
    cert: fs.readFileSync(path.resolve(__dirname, 'ssl', 'ca.crt')), 
    key: fs.readFileSync(path.resolve(__dirname, 'ssl', 'ca.key')) 
} 

const router = require('./router') 

app.use('/people', router) 

https.createServer(httpsOptions, app) 
    .listen(3443) 

私はまた、クロムに認証局ca.crtファイルをインポートして、クロムを再起動しました。以下に示すようにしかし、私はまだクロームでエラーを持っている:

enter image description here

は、この問題に おかげ


私は、次のコマンドを使用して、鍵と証明書を作成したを解決する方法を案内してください。

# certificate authority key 
openssl genpkey -algorithm RSA -pkeyopt rsa_keygen_bits:2048 -out ca.key 

# server key 
openssl genpkey -algorithm RSA -pkeyopt rsa_keygen_bits:2048 -out server.key 

# certificate authority 
openssl req -new -x509 -days 365 -key ca.key -subj "/CN=Test CA/O=Test Organization" -out ca.crt 

# certificate signing request 
openssl req -new -key server.key -subj "/CN=localhost/O=Test Organization" -out server.csr 

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

# verification 
openssl verify -verbose -CAfile ca.crt server.crt 

システム情報

  • のOpenSSL:1.1.0e 2017年2月16日
  • ノード:カップル過ごし7.7.1
  • のWindows 10
+1

を生成:以下の方法は、私のために働きました](http://stackoverflow.com/questions/27294589/creating-self-signed-certificate-for-domain-and-subdomains-neterr-cert-commo)、あなたの問題に似ているようです – Frederic

+3

あなたのエンドエンティティ/サーバー証明書の形式が正しくありません。 *** 'CN = localhost' ***が間違っています。ホスト名は常に* SAN *に入ります。 * CN *内に存在する場合は、* SAN *にも存在する必要があります(この場合は2回リストする必要があります)。詳細なルールと理由については、[証明機関との証明書署名要求の署名方法](http://stackoverflow.com/a/21340898/608639)および[opensslによる自己署名証明書の作成方法]( http://stackoverflow.com/q/10175812/608639) – jww

+1

@jww CN = Common Name、SANは何を表しますか? –

答えて

0

これを修正しようとしています

[req] 
distinguished_name = req_distinguished_name 
x509_extensions = v3_req 
prompt = no 
    [req_distinguished_name] 
C = US 
ST = VA 
L = SomeCity 
O = MyCompany 
OU = MyDivision 
CN = local.com 
    [v3_req] 
keyUsage = critical, digitalSignature, keyAgreement 
extendedKeyUsage = serverAuth 
subjectAltName = @alt_names 
    [alt_names] 
DNS.1 = local.com 
IP.1 = 127.0.0.1 

は(例えばreq.cnf用)の設定ファイルを作成し、あなたがここで[見たいと思うかもしれません証明書と秘密鍵

openssl req -x509 -nodes -days 730 -newkey rsa:2048 -keyout local.com.key -out local.com.cert -config req.cnf -sha256 
関連する問題