【20210815】大幅に修正しております。
nodejs単体で作成した経験を活かして、アクセス先を変えて試験を行う。
[root@ik1-403-xxxxx nadesiko]# node ./node_modules/.bin/nako3edit
* [WEBサーバ(なでしこ+Express)] (debug)
| 以下のURLで起動しました。
+- [URL] http://localhost:3030
>>> ————————————————–
>>> サーバ起動に成功しました。
>>> nako3edit にアクセスするには、以下のURLにアクセスします
>>> [URL] http://localhost:3030?appkey=2366_33664_63392
>>>
[static] /html /home/nadesiko/node_modules/nadesiko3/tools/nako3edit/html
[static] /release /home/nadesiko/node_modules/nadesiko3/release
[GET] /
[GET] /test
[GET] /files
[GET] /load
上記内容からこちらにアクセスします。
http://nako.tokyo:3030?appkey=2366_33664_63392
無事NODEJS版のNadesiko3が表示されました!
今度はSSLのURLから接続できるようにしたいです。
途中でおかしなエラーがありました。(nginxのログに)
1425F102:SSL routines:ssl_choose_client_version:unsupported protocol
こんなプロトコル対応していないよと書かれています。
⇒「NodeJS v11.4.0」からtlsのデフォルトの最小のバージョンが「TLSv1.2」に変わった事が原因でした。
解決策として、TLS1でも受け入れるように起動時にオプションをつけます。
>node –tls-min-v1.0 /home/nadesiko/node_modules/nadesiko3/src/nako3server.js
CentOS側でも同じようにTLSの規制が厳しいので、上記対策でもエラーログが消えない場合はOS側にコマンドで対応します。
>update-crypto-policies –set LEGACY
※目指すはHTTPSでアクセスできるようにする事です。
まずは適当にファイルを作成して、SSLで確認してみます。
>vi server.js
var https = require(‘https’);
var fs = require(‘fs’);
var ssl_server_key = ‘/etc/letsencrypt/live/nako.tokyo/privkey.pem’;
var ssl_server_crt = ‘/etc/letsencrypt/live/nako.tokyo/cert.pem’;
var port = 3001;
var options = {
key: fs.readFileSync(ssl_server_key),
cert: fs.readFileSync(ssl_server_crt)
};
https.createServer(options, function (req,res) {
res.writeHead(200, {
‘Content-Type’: ‘text/plain’
});
res.end(“Hello, world\n”);
}).listen(port);
ブラウザで確認します。
https://nako.tokyo:3001
これは順当に確認できました。
上記の結果から、当初なでしこ3のNodeモジュールを触らずに実現したかったのですが、どうも無理っぽいので試行してみます。
(nako3editの内部にSSL証明書のフルパスを書く等)
nako3editの中を確認してみます。
[root@ik1-403-xxxxx .bin]# cat nako3edit
#!/usr/bin/env node
const spawn = require(‘child_process’).spawn
const path = require(‘path’)
const nakoHome = path.resolve(path.join(__dirname, ‘../../’))
const cnako3 = path.resolve(path.join(nakoHome, ‘src/cnako3.js’))
const nako3edit = path.resolve(path.join(__dirname, ‘index.nako3’))
let proc = spawn(‘node’, [cnako3, nako3edit])
proc.stdout.on(‘data’, (data) => {
console.log(data.toString())
})
恐らく、このファイルに対してSSL証明書を記述すれば良いはず?
ちょっと長くなったので、8に続きます。
コメント(0)
コメントはまだありません。