しばらくの間、OpenSSLとNode.jsを統合する方法を探しています。
私の目標は次のとおりです。
- プラットフォームに依存しないようにしたいので、ソリューションはOS X、Linux、およびWindowsで機能するはずです。
- 不必要なディスク操作を避けたい。たとえば、秘密鍵はファイルではなくデータベースにある可能性があります(ばかげた例かもしれませんが、これは有効な要件であると考えてみましょう)。
- キーの作成、csrs、csrsへの署名、ca証明書の作成、...すべての証明書をエンドツーエンドでサポートしたいと思います。
今私が検討したオプションは次のとおりです。
- Node.jsに統合されているOpenSSLライブラリを使用します。残念ながら、暗号モジュールは証明書を提供しません。
- 外部モジュールを使用してOpenSSLライブラリを使用します。残念ながら、おそらくC / C ++の知識が不足しているため、これを行う方法がわかりません。
- OpenSSLバイナリを子プロセスとして使用します。OpenSSLが利用可能であることを考えると、これはすべてのプラットフォームで機能するはずです。それは良くありませんが、それは機能します。
質問1:私が書いたように、Node.jsにバンドルされているOpenSSLライブラリに直接アクセスする方法については少しもわかりません。これにどのようにアプローチしますか?
現時点では、バイナリを子プロセスとして使用することに固執しています。残念ながら、これには、秘密鍵などのすべてのものがファイルとして提供されるか(明示的に避けたい)、または/ dev / stdinを使用してすべてを渡す必要があります(Windowsでは機能しません)。
質問2:どうすればこれに対処できますか?#1の解決策もこの問題を解決しますか?